:root{--ink:#111827;--muted:#687083;--paper:#f6f7fa;--line:#dde1e9;--navy:#0c1020;--navy2:#171e35;--lime:#b7ff41;--amber:#f5a623;--red:#c94a47;--white:#fff;--radius:14px;--safe:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html{background:var(--navy);font-family:Inter,"Noto Sans JP","Hiragino Kaku Gothic ProN",system-ui,sans-serif;color:var(--ink)}body{margin:0;background:var(--paper);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.shell{max-width:680px;min-height:100vh;margin:auto;background:var(--paper);padding-bottom:calc(82px + var(--safe))}.topbar{background:var(--navy);color:#fff;padding:16px 18px 18px;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:800;letter-spacing:.13em;font-size:17px}.brand small{display:block;font-size:9px;font-weight:600;letter-spacing:.2em;color:var(--lime);margin-top:2px}.online{display:flex;align-items:center;font-size:12px;color:#cdd3df;gap:7px}.online i{width:7px;height:7px;background:var(--lime);border-radius:50%;box-shadow:0 0 0 3px rgba(183,255,65,.13)}.page{padding:20px 16px 28px}.eyebrow{font-size:11px;letter-spacing:.1em;color:var(--muted);font-weight:700}.title-row{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:5px 0 20px}.title-row h1{font-size:27px;letter-spacing:-.05em;margin:0;line-height:1.1}.date{font-size:12px;color:var(--muted);white-space:nowrap}.numbers{background:var(--navy);color:#fff;padding:18px;border-radius:var(--radius);display:grid;grid-template-columns:1fr 1fr;position:relative;overflow:hidden}.numbers:after{content:"";position:absolute;width:160px;height:160px;border:1px solid rgba(183,255,65,.22);border-radius:50%;right:-83px;bottom:-95px}.metric{position:relative;z-index:1}.metric+ .metric{border-left:1px solid #39415a;padding-left:17px}.metric-label{font-size:11px;color:#b7bfd1;display:block}.metric strong{font-size:35px;letter-spacing:-.07em;line-height:1.2}.metric em{font-size:12px;color:var(--lime);font-style:normal;margin-left:4px}.section{margin-top:27px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.section h2{font-size:15px;margin:0;letter-spacing:-.02em}.text-btn{border:0;background:none;color:#394c89;font-size:13px;min-height:44px;padding:0 4px}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.action{min-height:82px;text-align:left;padding:14px;border:1px solid var(--line);background:#fff;border-radius:12px;display:flex;flex-direction:column;justify-content:space-between;color:var(--ink)}.action svg{color:#435b9d}.action b{font-size:14px}.action span{font-size:11px;color:var(--muted)}.list{border-top:1px solid var(--line)}.row{width:100%;min-height:58px;padding:10px 0;border:0;border-bottom:1px solid var(--line);background:transparent;display:flex;align-items:center;text-align:left;gap:10px}.row-main{flex:1;min-width:0}.row-main b{display:block;font-size:14px}.row-main small{color:var(--muted);font-size:12px;display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tag{font-size:10px;border:1px solid var(--line);border-radius:20px;padding:4px 6px;color:#596174;white-space:nowrap}.tag.open{color:#a25d00;border-color:#efc888;background:#fff9e9}.tag.resolved{color:#256546;border-color:#b8ddc6;background:#f0fbf4}.bottom-nav{position:fixed;z-index:3;bottom:0;left:50%;transform:translateX(-50%);width:min(680px,100%);height:calc(70px + var(--safe));padding:5px 7px var(--safe);background:rgba(255,255,255,.97);border-top:1px solid var(--line);display:flex;justify-content:space-around}.nav-item{border:0;background:transparent;min-width:52px;height:64px;color:#798195;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10px}.nav-item.active{color:#283d7e;font-weight:700}.nav-item.active svg{color:#283d7e}.primary{min-height:48px;border:0;background:#394c89;color:#fff;padding:0 17px;border-radius:10px;font-weight:700}.primary:disabled{opacity:.5;cursor:not-allowed}.secondary{min-height:44px;border:1px solid #aeb7ca;background:#fff;color:#263252;padding:0 14px;border-radius:9px;font-weight:650}.danger{color:#a93838;border-color:#dfaaa8}.form{display:grid;gap:14px}.field{display:grid;gap:6px}.field label{font-size:12px;font-weight:700}.field input,.field select,.field textarea{min-height:46px;border:1px solid #bfc6d3;border-radius:9px;padding:10px;background:#fff;width:100%;color:var(--ink)}.field textarea{min-height:100px;resize:vertical}.hint,.empty{font-size:13px;color:var(--muted);line-height:1.65}.checkin{display:flex;gap:8px;align-items:center}.checkin .primary{white-space:nowrap}.split{display:flex;justify-content:space-between;gap:12px;align-items:center}.notice{border-left:3px solid var(--amber);padding:9px 11px;background:#fffaf0;font-size:12px;line-height:1.55;color:#624712}.modal-backdrop{position:fixed;z-index:9;inset:0;background:rgba(8,11,23,.56);display:grid;align-items:end}.modal{max-width:680px;width:100%;margin:auto;background:#fff;border-radius:18px 18px 0 0;padding:18px 16px calc(20px + var(--safe));max-height:88vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.modal-head h2{margin:0;font-size:18px}.close{width:44px;height:44px;border:0;background:#f0f2f6;border-radius:50%;display:grid;place-items:center}.toast-region{position:fixed;z-index:12;bottom:90px;left:50%;transform:translateX(-50%);width:min(92vw,450px);pointer-events:none}.toast{padding:12px 14px;color:#fff;background:#182038;border-radius:10px;box-shadow:0 8px 20px rgba(0,0,0,.18);font-size:13px;margin-top:7px;animation:up .22s ease-out}.toast.error{background:#8f3838}.login{min-height:100vh;background:var(--navy);color:#fff;display:grid;place-items:center;padding:22px}.login-panel{width:min(100%,390px)}.login-mark{color:var(--lime);letter-spacing:.22em;font-weight:800;font-size:14px}.login h1{font-size:37px;letter-spacing:-.07em;margin:14px 0 8px}.login p{color:#b9c0d0;font-size:14px;line-height:1.7;margin:0 0 28px}.login .field label{color:#e5e9f3}.login input{background:#fff}.login .primary{width:100%;background:var(--lime);color:#16200c;margin-top:4px}.login-foot{margin-top:21px;color:#788297;font-size:11px}.role-badge{font-size:10px;padding:4px 7px;border:1px solid #4e5d82;border-radius:99px;color:#d6dded}.admin-only{display:none}.is-admin .admin-only{display:flex}.table-head{display:grid;grid-template-columns:1.3fr .6fr .8fr;gap:8px;color:var(--muted);font-size:11px;padding:0 0 8px}.audit{font-size:12px}.audit time{color:var(--muted);display:block;font-size:11px;margin-top:3px}.loader{padding:50px 20px;text-align:center;color:var(--muted)}@keyframes up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(min-width:600px){.page{padding:26px 27px 35px}.topbar{padding:18px 27px}.action-grid{grid-template-columns:repeat(4,1fr)}.action{min-height:96px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
