:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#20314b;background:#eef2f7;line-height:1.5;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:#145caa}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px max(18px,calc((100vw - 1200px)/2));background:#18273d;color:#fff;gap:12px}.brand{display:flex;align-items:center;gap:10px;font-size:18px;letter-spacing:.1px}.brand b{font-size:.8em;letter-spacing:1.2px;color:#e9bf5a}.brand-mark{display:inline-grid;place-items:center;width:37px;height:37px;border-radius:11px;background:#eabb58;color:#1d2a40;font-size:24px;font-weight:800}.header-user{font-size:12px;color:#d3deeb;text-align:right;overflow-wrap:anywhere}.header-user button{margin-left:8px}.footer{margin-top:auto;text-align:center;padding:25px 12px;color:#76849a;font-size:12px}.container{width:min(1200px,calc(100% - 32px));margin:24px auto}.hero{background:linear-gradient(135deg,#18283f,#304567);color:#fff;padding:34px 30px;border-radius:22px;margin-bottom:22px}.hero h1{margin:0 0 9px;font-size:clamp(26px,4vw,40px)}.hero p{margin:0;opacity:.85}.eyebrow{text-transform:uppercase;letter-spacing:2px;color:#e8bf60;font-weight:750;font-size:12px;margin-bottom:10px}.narrow{width:min(520px,calc(100% - 30px));margin:45px auto}.panel{background:#fff;border:1px solid #e0e7ef;border-radius:18px;box-shadow:0 7px 28px rgba(20,39,66,.05);padding:22px;margin-bottom:16px}.panel h2,.panel h3{margin:0 0 12px}.panel h2{font-size:21px}.panel h3{font-size:17px}.muted{color:#667792}.small{font-size:13px}.hint{padding:12px 14px;background:#fff8e9;border:1px solid #f1dfb3;color:#6b5624;border-radius:10px;margin:12px 0;font-size:13px}.okmsg{padding:12px 14px;background:#e9f6ec;border:1px solid #bbdec7;color:#1d6642;border-radius:10px;margin:12px 0}.error{padding:12px 14px;background:#fff0ef;color:#8c3232;border:1px solid #f5c4c2;border-radius:10px;margin:12px 0}.loading{text-align:center;padding:85px 20px;color:#667792}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;min-width:0}.field label{font-size:13px;font-weight:700;color:#374c6a}.field input,.field select,.field textarea{width:100%;padding:12px 13px;border:1px solid #cbd6e3;border-radius:10px;background:#fff;color:#1c2c43;outline:none;min-height:43px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#3076b8;box-shadow:0 0 0 3px rgba(48,118,184,.12)}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 14px}.btn{border:0;padding:11px 17px;border-radius:10px;background:#1b67af;color:#fff;font-weight:730;white-space:normal;line-height:1.3}.btn:hover{filter:brightness(.96)}.btn.gold{background:#edbd58;color:#27314a}.btn.gray{background:#eaf0f6;color:#344964}.btn.outline{background:#fff;color:#1b67af;border:1px solid #a9c6e1}.btn.danger{background:#b74048;color:#fff}.btn.sm{padding:7px 11px;font-size:12px}.btn:focus-visible,.tab:focus-visible{outline:3px solid #efa820;outline-offset:3px}.nav{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;padding:2px 1px 12px;margin-bottom:8px}.tab{border:1px solid #dce4ed;background:#fff;color:#53657e;border-radius:12px;padding:11px 15px;font-weight:700;flex-shrink:0}.tab.active{background:#203d62;border-color:#203d62;color:#fff}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:14px;margin:20px 0}.stat{background:#fff;border:1px solid #e1e7ee;border-radius:15px;padding:19px}.stat strong{font-size:27px;display:block;color:#203d62}.stat span{font-size:13px;color:#657690}.pill{display:inline-block;border-radius:8px;padding:3px 8px;font-size:11px;font-weight:750;white-space:nowrap}.pill.gold{background:#fff2d5;color:#725723}.pill.blue{background:#e5f0ff;color:#24609a}.pill.violet{background:#f1eafd;color:#6745a5}.pill.green{background:#e2f4e8;color:#26734a}.pill.gray{background:#ecf0f6;color:#53627a}.pill.red{background:#fce6e4;color:#9d3838}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.calendar-header h2{margin:0;font-size:20px}.calendar-scroll{overflow-x:auto}.calendar{display:grid;grid-template-columns:repeat(7,minmax(128px,1fr));gap:7px;min-width:875px}.weekday{text-align:center;color:#647790;font-size:12px;text-transform:uppercase;font-weight:800;padding:6px}.day{background:#fff;border:1px solid #dce4ef;border-radius:12px;min-height:164px;padding:9px;display:flex;flex-direction:column;gap:5px}.day.outside{background:#f5f6f9;opacity:.55}.day.today{outline:2px solid #e3ad42}.daytop{font-weight:800;display:flex;justify-content:space-between;margin-bottom:4px}.slot{display:block;border:1px solid #e4ebf4;border-left:4px solid #7091b2;border-radius:7px;background:#f6f8fb;padding:6px 7px;text-align:left;color:#233754;font-size:12px;line-height:1.3;min-height:40px}.slot.r1{border-left-color:#dca63a}.slot.r2{border-left-color:#4b94c9}.slot.n1{border-left-color:#8472c5}.slot.n2{border-left-color:#5072a6}.slot .who{display:block;font-weight:750;margin-top:2px;overflow-wrap:anywhere}.slot.empty{color:#8b98aa;border-left-color:#cfd8e5;background:#fff}.slot.action:hover{border-color:#2d689c}.legend{display:flex;gap:9px;flex-wrap:wrap;margin:13px 0;font-size:12px}.record{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 0;border-bottom:1px solid #e9edf3}.record:last-child{border-bottom:0}.record .name{font-weight:780}.record .detail{font-size:13px;color:#6c7c90}.tablewrap{overflow-x:auto}.data{border-collapse:collapse;width:100%;min-width:620px;text-align:left}.data th,.data td{padding:11px 10px;border-bottom:1px solid #e7ecf3}.data th{color:#506078;background:#f6f8fa;font-size:12px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 15px}.hr{border:0;border-top:1px solid #e5eaf1;margin:18px 0}.empty-note{border:1px dashed #cbd8e7;border-radius:12px;padding:30px 16px;text-align:center;color:#708199}.toast{position:fixed;z-index:50;left:50%;bottom:24px;transform:translateX(-50%);background:#203d62;color:#fff;border-radius:12px;box-shadow:0 10px 35px #152b4d66;padding:13px 18px;max-width:calc(100% - 30px);min-width:min(340px,calc(100% - 30px));text-align:center}.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.checkbox-row{display:flex;align-items:center;gap:9px;margin:8px 0}.checkbox-row input{width:18px;height:18px}.superset{color:#435571;overflow-wrap:anywhere;font-size:12px}.suspended{opacity:.55}.auth-actions{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.content-title{font-size:23px;margin:16px 0 4px}.link{background:none;border:0;color:#1b67af;text-decoration:underline;padding:0}.spinner{display:inline-block;width:15px;height:15px;border:2px solid #bcd6ec;border-top-color:#205eaa;border-radius:50%;animation:sp .7s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}@media(max-width:650px){.topbar{padding:13px 15px}.brand{font-size:15px}.brand-mark{width:32px;height:32px}.container{width:calc(100% - 22px);margin:13px auto}.hero{padding:25px 19px;border-radius:17px}.panel{padding:17px;border-radius:14px}.narrow{margin:20px auto;width:calc(100% - 22px)}.header-user button{margin-top:5px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat strong{font-size:23px}}
