:root{color:#17211d;background:#f5f5f2;font-family:Inter,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--green: #1a7afd;--green-deep: #0f62d4;--green-soft: #e8f2ff;--ink: #17211d;--muted: #6d7772;--line: #dfe3df;--paper: #ffffff;--red: #a63d36}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:360px;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}h1,h2,p{margin-top:0}h1{margin:0;font-size:27px;letter-spacing:-.035em}h2{font-size:1rem}small,.muted{color:var(--muted)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:32px;background:#f1f2ef}.login-card{width:min(100%,390px);background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 18px 55px #192b2314;display:grid;gap:16px}.login-copy{margin:28px 0 8px}.login-copy p{margin:8px 0 0;color:var(--muted);line-height:1.5}.login-card label,label{display:grid;gap:7px;font-size:12px;font-weight:650;color:#46504b;letter-spacing:.015em}input,textarea,select{width:100%;border:1px solid #d6dbd7;background:#fafbf9;color:var(--ink);border-radius:10px;padding:11px 12px;outline:none}input:focus,textarea:focus,select:focus{border-color:#7aafff;box-shadow:0 0 0 3px #1a7afd29}.primary-button,.secondary-button,.danger-button{border:0;border-radius:10px;padding:11px 18px;font-weight:700}.primary-button{background:var(--green);color:#fff}.primary-button:hover{background:var(--green-deep)}.primary-button.small{padding:8px 14px}.full{width:100%}button:disabled{opacity:.55;cursor:default}.privacy-footnote{text-align:center;color:var(--muted);font-size:11px;margin:6px 0 0}.forgot-link{justify-self:start;padding:0}.text-button,.danger-link{border:0;background:none;color:var(--green);padding:4px;font-weight:650;font-size:12px}.danger-link{color:var(--red)}.shot-frame .danger-link{position:absolute;right:.5rem;bottom:.5rem;background:#ffffffeb;border-radius:999px;padding:6px 10px}.notice,.form-error{color:#862f2b;background:#fae9e7;border:1px solid #f0cdca;border-radius:9px;padding:10px 12px;font-size:12px;line-height:1.45;margin:0 0 1rem}.notice.success,.form-success{color:#1b6245;background:#e5f3ec;border:1px solid #c5e2d4}.notice.info,.notice:not(.error):not(.success){color:#314039;background:var(--green-soft);border-color:#c9ddfb}.brand{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:750;letter-spacing:.14em;white-space:nowrap}.brand span{display:grid}.brand small{margin-top:2px;letter-spacing:.04em;font-weight:600;font-size:11px}.brand-mark{width:32px;height:32px;display:block}.brand.compact{letter-spacing:.08em}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:#f5f5f2}.app-header{min-height:64px;padding:8px 20px;display:flex;align-items:center;gap:18px;background:#ffffffdb;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;backdrop-filter:blur(12px)}.section-nav{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto}.nav-item{border:0;background:none;border-radius:9px;padding:8px 12px;color:#7b847f;font-size:13px;font-weight:650;white-space:nowrap}.nav-item:hover,.nav-item.active{color:var(--green);background:var(--green-soft)}.account-card{display:flex;align-items:center;gap:8px;margin-left:auto}.account-card span:nth-child(2){display:grid;font-size:13px}.account-card small{font-size:11px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--green-soft);color:var(--green-deep);display:grid;place-items:center;font-weight:800;font-size:12px}.avatar.small{width:32px;height:32px}.content{padding:clamp(1.25rem,3vw,2.5rem);max-width:1440px;width:100%;margin:0 auto}.page-header{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin:0 0 1.5rem}.page-header p:not(.eyebrow){color:var(--muted);max-width:700px;margin:0;line-height:1.55}.eyebrow{color:var(--green);letter-spacing:.13em;font-size:10px;font-weight:800;margin-bottom:.45rem}.eyebrow.danger{color:var(--red)}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.metric,.panel,.request-card,.diary-block,.empty-card{background:var(--paper);border:1px solid var(--line);border-radius:16px}.metric{padding:1.25rem;display:grid;gap:.35rem}.metric>span{color:var(--muted);font-size:.8rem}.metric>strong{font-size:1.8rem;letter-spacing:-.04em}.panel{overflow:hidden}.panel-title{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.2rem;border-bottom:1px solid var(--line)}.panel-title h2{margin:0}.status-dot{font-size:.75rem;color:#597068}.status-dot:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:.45rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.86rem}th,td{padding:.9rem 1.15rem;text-align:left;border-bottom:1px solid #ecece6}th{color:var(--muted);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}tbody tr:last-child td{border-bottom:0}.empty{text-align:center;padding:2rem;color:#78817d}.person{display:flex;align-items:center;gap:.65rem}.person>span:last-child{display:grid}.pill{display:inline-block;width:fit-content;padding:.2rem .5rem;border-radius:999px;background:#e5e9e7;color:#50615a;font-size:.68rem;font-weight:800;text-transform:capitalize}.pill.active,.pill.approved{background:#e5f0ff;color:#0f62d4}.pill.disabled,.pill.rejected{background:#f7dfdd;color:#843832}.pill.pending{background:#fff1ce;color:#70571c}.diary-list,.card-list{display:grid;gap:.9rem}.diary-block{display:grid;grid-template-columns:100px minmax(240px,38%) minmax(280px,1fr);overflow:hidden}.block-time{padding:1rem;display:grid;align-content:start;gap:.3rem;border-right:1px solid var(--line)}.block-time span{font-size:.75rem;color:var(--muted)}.shot-frame{min-height:180px;background:#e8ebe8;position:relative;display:grid;place-items:center;overflow:hidden}.shot-frame img{width:100%;height:100%;object-fit:contain}.preview-button{background:#f7faf8;border:1px solid var(--line);border-radius:10px;padding:8px 12px}.missing-shot{padding:1.2rem;color:#314039;text-align:center;display:grid;gap:.45rem}.missing-shot span{color:var(--muted);font-size:.75rem;line-height:1.45}.block-details{padding:1rem 1.2rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.block-details>div{display:flex;flex-direction:column;gap:.35rem;min-width:0}.block-details small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label{color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.request-card{padding:1.2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.request-card h2{margin:.55rem 0 .35rem}.request-card p{margin-bottom:.45rem}.row-actions,.modal-actions{display:flex;gap:.6rem}.row-actions button:not(.primary-button){background:#edf0ed;color:#314039;border:0;border-radius:10px;padding:11px 18px;font-weight:700}.empty-card{padding:2rem;color:var(--muted);text-align:center}.modal-backdrop{position:fixed;inset:0;z-index:20;background:#17211d73;display:grid;place-items:center;padding:1rem}.modal{width:min(520px,100%);border-radius:20px;background:#fff;padding:1.6rem;box-shadow:0 18px 55px #192b231f;border:1px solid var(--line)}.modal p{line-height:1.55}.check{display:flex;gap:.7rem;align-items:start;padding:.85rem;background:#f7f8f6;border-radius:10px;font-size:.82rem}.check input{width:auto;margin:.15rem 0 0}.modal-actions{justify-content:flex-end;margin-top:1rem}.danger-button{background:var(--red);color:#fff}.skeleton-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.skeleton-grid i{height:120px;border-radius:16px;background:linear-gradient(90deg,#e7ebe8,#f7f8f6,#e7ebe8);background-size:200%;animation:pulse 1.4s infinite}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem}@keyframes pulse{to{background-position:-200%}}@media(max-width:980px){.app-header{flex-wrap:wrap;height:auto}.section-nav{order:3;width:100%}.diary-block{grid-template-columns:80px 1fr}.block-details{grid-column:1 / -1}}@media(max-width:680px){.content{padding:1.2rem}.metric-grid{grid-template-columns:1fr}.page-header,.request-card{align-items:stretch;flex-direction:column}.account-card span:nth-child(2){display:none}.diary-block{grid-template-columns:1fr}.block-time{border-right:0;border-bottom:1px solid var(--line)}.block-details{grid-template-columns:1fr}}
