@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css");:root{color-scheme:light;--bg:#f6f7f9;--surface:#ffffff;--surface-2:#fafbfc;--hover:#f3f4f6;--text:#111827;--heading:#374151;--muted:#6b7280;--faint:#9ca3af;--border:#e8eaed;--border-strong:#d7dbe0;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-soft:#eff4ff;--primary-border:#c7d7fe;--on-primary:#ffffff;--danger:#dc2626;--danger-soft:#fef2f2;--danger-border:#fecaca;--danger-text:#991b1b;--ok:#16a34a;--ok-soft:#ecfdf5;--ok-text:#047857;--warn:#b45309;--warn-soft:#fffbeb;--warn-text:#92400e;--info-soft:#f0f9ff;--info-border:#bae6fd;--info-text:#075985;--track:#f1f5f9;--highlight:#fef3c7;--highlight-text:inherit;--missing:#fff7ed;--chart-blue:#2563eb;--chart-gray:#cbd5e1;--chart-green:#16a34a;--chart-red:#dc2626;--chart-grid:#eef1f5;--chart-axis:#9ca3af;--toast-ok:#067647;--toast-error:#dc2626;--toast-info:#1f2937;--toast-text:#ffffff;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px rgba(16,24,40,0.05);--shadow:0 1px 3px rgba(16,24,40,0.06),0 1px 2px rgba(16,24,40,0.04)}[data-theme=dark]{color-scheme:dark;--bg:#15171c;--surface:#1b1e24;--surface-2:#21252c;--hover:#262b33;--text:#e2e5ea;--heading:#cfd4dc;--muted:#98a1ac;--faint:#6d7681;--border:#2a2f38;--border-strong:#39404a;--primary:#6ea3f7;--primary-hover:#86b4ff;--primary-soft:#1d2839;--primary-border:#33456a;--on-primary:#101319;--danger:#ef8b8d;--danger-soft:#2e1f22;--danger-border:#4d3236;--danger-text:#f0a9ab;--ok:#5ec98c;--ok-soft:#17281f;--ok-text:#7fd7a5;--warn:#dda657;--warn-soft:#2b2318;--warn-text:#e8bd7c;--info-soft:#16242e;--info-border:#24435a;--info-text:#8fc7e8;--track:#2a2f37;--highlight:#4a3d18;--highlight-text:#f0e2b8;--missing:#2b2318;--chart-blue:#6ea3f7;--chart-gray:#4a525d;--chart-green:#5ec98c;--chart-red:#ef8b8d;--chart-grid:#262b33;--chart-axis:#7b8490;--toast-ok:#2f7d55;--toast-error:#a34446;--toast-info:#333a44;--toast-text:#f0f2f5;--shadow-sm:none;--shadow:none}*{box-sizing:border-box}body,html{padding:0;margin:0}body{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--text);background:var(--bg);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;letter-spacing:-.02em;margin:0 0 4px}h1,h2{font-weight:700}h2{font-size:17px;margin:0 0 8px}h3{font-size:15px;font-weight:700;margin:0 0 10px;color:var(--heading)}.container{max-width:1180px;margin:0 auto;padding:24px}.app{display:flex;min-height:100vh}.sidebar{width:236px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:18px 14px;position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px}.sidebar .brand{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 8px 18px}.sidebar .brand img{height:40px;width:auto}.sidebar .navlink{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--radius-sm);color:var(--muted);font-size:14px;font-weight:500;text-decoration:none;transition:background .12s,color .12s}.sidebar .navlink:hover{background:var(--hover);text-decoration:none}.sidebar .navlink.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.sidebar .navlink svg{width:18px;height:18px;flex-shrink:0}.sidebar .navgroup{font-size:11px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;padding:14px 12px 6px}.sidebar .spacer{flex:1 1}.sidebar .userbox{border-top:1px solid var(--border);padding-top:12px;margin-top:8px;font-size:13px}.sidebar .userbox .name{font-weight:600}.sidebar .userbox .role{color:var(--faint);font-size:12px}.main{flex:1 1;min-width:0;display:flex;flex-direction:column}.topbar{height:58px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:0 28px;position:-webkit-sticky;position:sticky;top:0;z-index:5}.topbar .title{font-size:16px;font-weight:700;letter-spacing:-.01em}.topbar .spacer{flex:1 1}.content{padding:26px 28px 60px;max-width:1500px;width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:18px;box-shadow:var(--shadow-sm)}.card h3{margin-top:0}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.field{margin-bottom:12px}.field.grow{flex:1 1;min-width:180px}label{font-size:12.5px;color:var(--muted);display:block;margin-bottom:5px;font-weight:500}input,select,textarea{padding:9px 11px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;background:var(--surface);color:var(--text);transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.12)}input::placeholder,textarea::placeholder{color:var(--faint)}textarea{resize:vertical}button{padding:9px 15px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--primary);color:var(--on-primary);cursor:pointer;font:inherit;font-weight:600;transition:background .12s,opacity .12s}button:hover{background:var(--primary-hover)}button.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}button.secondary:hover{background:var(--hover)}button.ghost{background:transparent;color:var(--muted);border-color:transparent}button.danger{background:var(--danger);color:var(--on-primary)}button:disabled{opacity:.5;cursor:default}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:11px 12px;font-size:13.5px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;font-size:12px;background:var(--surface-2)}tbody tr:hover{background:var(--hover)}tbody tr:last-child td{border-bottom:none}.muted{color:var(--muted);font-size:13px}.err{color:var(--danger);font-size:13.5px}.warn{background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger-text);padding:12px 14px;border-radius:var(--radius-sm)}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--muted)}.badge.blue{background:var(--primary-soft);color:var(--primary)}.badge.green{background:#ecfdf3;color:#067647}.chip{display:inline-block;padding:2px 9px;border-radius:6px;font-size:12px;color:#fff;font-weight:600;margin-right:5px}.stat{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;min-width:130px}.stat .num{font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--text)}.stat .lbl{font-size:12.5px;color:var(--muted)}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 30px rgba(16,24,40,.08);padding:32px 30px}.auth-card .logo{text-align:center;margin-bottom:18px}.auth-card .logo img{width:100%;max-width:220px;height:auto}.auth-card h1{text-align:center;font-size:17px;color:var(--heading);font-weight:700;margin-bottom:20px}.btn-block{width:100%;padding:11px;font-size:15px}.navbadge{margin-left:auto;background:var(--danger);color:var(--on-primary);border-radius:999px;font-size:10.5px;font-weight:700;padding:1px 7px;line-height:1.5}.shellbanner{display:flex;align-items:center;gap:12px;padding:9px 28px;font-size:13px;flex-wrap:wrap}.gsearch input{width:260px;max-width:46vw}@media (max-width:760px){.sidebar{width:56px;padding:12px 6px}.sidebar .brand{padding:6px 4px 12px}.sidebar .brand img{height:26px}.sidebar .navlink{justify-content:center;padding:10px 6px;position:relative}.sidebar .navlink svg{width:20px;height:20px}.sidebar .brand strong,.sidebar .navgroup,.sidebar .navlink span,.sidebar .userbox .name,.sidebar .userbox .role{display:none}.sidebar .navbadge{position:absolute;top:4px;right:6px;margin:0;padding:0 5px}.sidebar .userbox{padding-top:10px}.sidebar .userbox a,.sidebar .userbox button{font-size:11px;padding:7px 4px}.content{padding:16px 12px 48px}.topbar{padding:0 10px;gap:8px;height:52px}.topbar .title{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}.shellbanner{padding:8px 12px;font-size:12.5px}input,select,textarea{font-size:16px}button{padding:10px 14px}.gsearch input{width:100%;max-width:46vw}.row.statscroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;width:100%;min-width:0;margin-left:0!important;-webkit-overflow-scrolling:touch}.row.statscroll .stat{flex:0 0 auto}.stat{min-width:104px;padding:12px 14px}.stat .num{font-size:20px}.card{padding:14px;margin-bottom:14px}h2{font-size:16px}.card>table,.content table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}@media (max-width:420px){.content{padding:14px 10px 48px}.topbar .title{max-width:40vw}.stat{min-width:96px}}.casetable td{padding:12px 14px;vertical-align:top}.casetable tbody tr.closedrow{color:#6b7280}.casetable tbody tr.closedrow td:first-child a{color:#475569}.segrow{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:2px}.segchip{background:transparent;color:var(--muted);border:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 4px;margin-right:8px;font-size:14px;font-weight:600;cursor:pointer}.segchip:hover{background:transparent;color:var(--text)}.segchip.active{color:var(--primary);border-bottom-color:var(--primary)}.segchip .segcount{font-size:12px;color:var(--faint);font-weight:700;margin-left:2px}.segchip.active .segcount{color:var(--primary)}.pillrow{display:flex;gap:6px;flex-wrap:wrap}.pill{background:#fff;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:5px 11px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.pill:hover{background:#f8fafc;color:var(--text)}.pill.active{background:var(--primary);border-color:var(--primary);color:#fff}.pill .segcount{font-size:11.5px;color:var(--faint);font-weight:700;margin-left:3px}.pill.active .segcount{color:rgba(255,255,255,.85)}.cal-holiday{font-weight:700;color:#dc2626;margin-left:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62px;display:inline-block;vertical-align:bottom}.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:12px 14px;gap:12px 14px;margin-bottom:12px;align-items:start}.formgrid .field{margin-bottom:0;min-width:0}.formgrid .field>input,.formgrid .field>select,.formgrid .field>textarea{width:100%}.formgrid .field.full{grid-column:1/-1}.formgrid .field.half{grid-column:span 2}.formgrid .checkfield{display:flex;align-items:center;gap:7px;align-self:end;padding-bottom:10px;font-size:13.5px;font-weight:500;color:#374151;white-space:nowrap}.formgrid .checkfield input{width:15px;height:15px}.casegrid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.casegrid>*{min-width:0}.casegrid .card:last-child{margin-bottom:0}@media (max-width:1100px){.casegrid{grid-template-columns:1fr}}.subhead{font-size:12px;font-weight:700;color:var(--faint);letter-spacing:.02em;padding-top:14px;margin-bottom:10px;border-top:1px solid var(--border)}.tabrow{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:6px;gap:6px;margin-bottom:12px}.tabrow>button{padding:12px 8px;font-size:14.5px;font-weight:600}@media (max-width:620px){.tabrow{grid-template-columns:repeat(3,1fr)}.tabrow>button{padding:10px 6px;font-size:13.5px}}.noticeblock{margin-bottom:8px}.noticeblock,.reccard{border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 11px;background:#fff}.reccard{margin-top:8px}.reclabel{font-size:12px;font-weight:700;color:var(--primary);background:none;border:none}.recbody{margin:6px 0 0;font:inherit;font-size:12.5px;line-height:1.6;color:#1f2937;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}.pickerlist{margin-top:8px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.pickeritem{display:block;width:100%;text-align:left;padding:9px 12px;font-size:13.5px;background:#fff;color:var(--text);border:none;border-bottom:1px solid #f4f5f7;border-radius:0;font-weight:500}.pickeritem:last-child{border-bottom:none}.pickeritem:hover{background:var(--primary-soft)}.pickeritem.newone{color:var(--primary);background:#fafbfc}.pickeritem:disabled{opacity:.6}.noticebtn{padding:0;font-size:12px;color:var(--primary);font-weight:600}.noticebtn:hover{background:transparent;text-decoration:underline}.noticebox{margin-top:10px}.noticereminder{margin-top:8px;font-size:12px;font-weight:600;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:6px 10px}.noticebox textarea{width:100%;font-size:12.5px;line-height:1.6;font-family:inherit;border-radius:var(--radius-sm);background:#fff}.cdetail{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-gap:14px;gap:14px;align-items:start}.cdetail-side{display:flex;flex-direction:column;gap:10px;min-width:0}@media (max-width:900px){.cdetail{grid-template-columns:1fr}}.cfield{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:#fff;min-width:0}.cfield-label{font-size:11.5px;font-weight:700;color:var(--primary);background:var(--primary-soft);display:inline-block;padding:1px 8px;border-radius:999px;margin-bottom:7px}.cfield-body{font-size:13px;line-height:1.62;color:#1f2937}.cfield-body p{margin:0 0 7px;white-space:pre-wrap}.cfield-body p:last-child{margin-bottom:0}.cfield-body ul{margin:0;padding-left:16px}.cfield-body ul li{margin-bottom:6px;white-space:pre-wrap}.cfield-body ul li:last-child{margin-bottom:0}.cfield-body.clamp{max-height:92px;overflow:hidden;position:relative}.cfield-body.clamp-lg{max-height:184px}.cfield-body.clamp:after{content:"";position:absolute;left:0;right:0;bottom:0;height:34px;background:linear-gradient(rgba(255,255,255,0),#fff)}.cfield-more{padding:2px 0;font-size:12px;color:var(--primary);font-weight:600}.cfield-more:hover{background:transparent;text-decoration:underline}.statgrid{width:100%;border-collapse:collapse}.statgrid th{font-size:11.5px;font-weight:700;color:var(--faint);text-transform:none;background:none;border-bottom:1px solid var(--border);padding:6px 8px;white-space:nowrap}.statgrid td.num,.statgrid th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.statgrid td{padding:7px 8px;border-bottom:1px solid #f4f5f7;font-size:13.5px}.statgrid tbody tr:last-child td{border-bottom:none}.statgrid tbody tr:hover{background:var(--hover)}.statgrid .name{font-weight:600}.statgrid .sub{display:block;font-size:11.5px;color:var(--faint);font-weight:500;margin-top:1px;max-width:22ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.statgrid td.barcell{width:190px;padding-right:14px}.statbar{position:relative;height:8px;border-radius:999px;background:#eef0f3;overflow:hidden}.statbar>i{background:#c7d7f7}.statbar>b,.statbar>i{position:absolute;inset:0 auto 0 0;border-radius:999px}.statbar>b{background:var(--primary)}.statgrid .rate{font-weight:700}.statgrid .rate.zero{color:var(--faint);font-weight:600}.statcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:16px;gap:16px;align-items:stretch}.statcards>.card{margin-bottom:0}@media (max-width:700px){.statgrid td.barcell{width:90px}}.steprow{display:flex;align-items:center;gap:10px}.steprow .name{width:74px;flex:none;font-size:13px;font-weight:700;color:#374151}.steprow .track{flex:1 1;min-width:0;height:22px;background:#eef1f5;border-radius:5px;overflow:hidden}.steprow .track>i{display:block;height:100%;border-radius:5px}.steprow>b{width:34px;font-size:17px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.steprow .pct,.steprow>b{flex:none;text-align:right}.steprow .pct{width:40px;font-size:12px;color:var(--faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stepdrop{margin:3px 0 3px 84px;font-size:11.5px;color:#b45309;font-weight:600;padding-left:12px;border-left:2px dashed #fcd9a4}.pyrbar{position:relative;height:20px;min-width:4px;border-radius:4px;background:#e3ebfa;display:flex;align-items:center}.pyrbar>i{display:block;height:100%;background:var(--primary);border-radius:4px}.pyrnum{width:24px;flex:none;font-size:11.5px;font-weight:700;color:#4b5563;text-align:right}.pyrnum.left{text-align:left}.colbar{position:relative;max-width:64px;margin:4px auto 0;min-height:8px;background:#e3ebfa;display:flex;flex-direction:column;justify-content:flex-end}.colbar,.colbar>i{width:100%;border-radius:5px 5px 0 0}.colbar>i{display:block;background:var(--primary)}.colbar.partial{background:repeating-linear-gradient(45deg,#e3ebfa,#e3ebfa 4px,#f3f6fc 0,#f3f6fc 8px)}.cal-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.cal-title{font-size:19px;font-weight:800;letter-spacing:-.02em;min-width:118px}.cal-nav{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#374151;border:1px solid var(--border-strong);border-radius:8px;font-size:16px;line-height:1}.cal-nav:hover{background:#f3f4f6}.cal-sum{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.cal-sum>button{background:#fff;border:1px solid var(--border);border-radius:10px;padding:6px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:0;min-width:78px;color:var(--text)}.cal-sum>button:hover{background:#f9fafb;border-color:var(--border-strong)}.cal-sum .n{font-size:17px;font-weight:800;letter-spacing:-.02em;line-height:1.25}.cal-sum .l{font-size:11px;color:var(--muted);font-weight:600}.cal-sum .urgent .n{color:var(--danger)}.cal-legend{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--muted)}.cal-legend i{width:9px;height:9px;border-radius:3px;display:inline-block;margin-right:4px;vertical-align:-1px}.cal{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm)}.cal-body,.cal-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-head>div{padding:10px 6px;text-align:center;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--muted);background:#fafbfc;border-bottom:1px solid var(--border)}.cal-head>div.sun{color:#e11d48}.cal-head>div.sat{color:#2563eb}.cal-day{min-height:132px;padding:7px 7px 9px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-width:0;display:flex;flex-direction:column;gap:3px;cursor:pointer;transition:background .12s}.cal-day:nth-child(7n){border-right:none}.cal-body>.cal-day:nth-last-child(-n+7){border-bottom:none}.cal-day:hover{background:#fbfcfe}.cal-day.weekend{background:#fcfcfd}.cal-day.other{background:#fafafa}.cal-day.other .cal-ev{opacity:.55}.cal-day.selected{background:var(--primary-soft);box-shadow:inset 0 0 0 2px var(--primary)}.cal-daynum{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:700;color:#374151;margin-bottom:1px;min-height:22px}.cal-day.other .cal-daynum{color:var(--faint);font-weight:500}.cal-daynum.holiday,.cal-daynum.sun{color:#e11d48}.cal-daynum.sat{color:#2563eb}.cal-daynum .num-today{background:var(--primary);color:#fff;border-radius:999px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.cal-holiday{font-size:10.5px;font-weight:600;color:#e11d48}.cal-daycount{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--faint)}.cal-ev{display:flex;align-items:baseline;gap:5px;width:100%;text-align:left;border:none;border-left:3px solid var(--faint);background:#f3f4f6;border-radius:0 6px 6px 0;padding:3px 6px;cursor:pointer;font-size:11.5px;line-height:1.5;color:#1f2937;font-weight:500;transition:transform .08s,filter .12s}.cal-ev:hover{filter:brightness(.96);transform:translateX(1px)}.cal-ev .t{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;color:inherit;opacity:.75;flex-shrink:0}.cal-ev .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cal-ev .n em{font-style:normal;font-weight:500;opacity:.62;margin-left:4px}.cal-ev.k-hearing{background:#eef4ff;border-left-color:#3b6fe0;color:#1e3a8a}.cal-ev.k-deadline{background:#fef1f2;border-left-color:#e11d48;color:#9f1239;font-weight:600}.cal-ev.k-meeting{background:#edfbf3;border-left-color:#0d9488;color:#115e59}.cal-ev.k-etc{background:#f4f4f5;border-left-color:#a1a1aa;color:#3f3f46}.cal-ev.done{opacity:.45;text-decoration:line-through;font-weight:500}.cal-more{background:none;border:none;color:var(--muted);font-size:10.5px;font-weight:600;text-align:left;padding:1px 6px;cursor:pointer}.cal-more:hover{background:none;color:var(--primary);text-decoration:underline}.cal-empty{font-size:11px;color:#d1d5db}.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:16px;gap:16px;align-items:start}.cal-detail{position:-webkit-sticky;position:sticky;top:76px;max-height:calc(100vh - 100px);overflow-y:auto;margin-bottom:0}.cal-detail .dhead{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}.cal-detail .dhead .d{font-size:17px;font-weight:800;letter-spacing:-.02em}.cal-detail .dhead .w{font-size:13px;color:var(--muted);font-weight:600}.cal-item{border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:0 10px 10px 0;padding:10px 12px;margin-bottom:9px;background:#fff}.cal-item.k-hearing{border-left-color:#3b6fe0}.cal-item.k-deadline{border-left-color:#e11d48;background:#fffbfb}.cal-item.k-meeting{border-left-color:#0d9488}.cal-item .when{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:800;font-size:14px;letter-spacing:-.01em}.cal-item .kind{font-size:12px;font-weight:700;color:var(--muted)}.cal-item .who{font-size:14px;font-weight:700;margin-top:4px}.cal-item .meta{font-size:12.5px;color:var(--muted);margin-top:2px}.cal-item .links{display:flex;gap:10px;margin-top:7px;font-size:12.5px}.cal-list-day{display:grid;grid-template-columns:92px minmax(0,1fr);grid-gap:14px;gap:14px;padding:12px 0;border-top:1px solid var(--border)}.cal-list-day:first-child{border-top:none}.cal-list-date{font-size:13px;font-weight:800;letter-spacing:-.01em}.cal-list-date .w{font-weight:600;color:var(--muted);font-size:12px;margin-left:4px}.cal-list-date.holiday,.cal-list-date.sun{color:#e11d48}.cal-list-date.sat{color:#2563eb}.cal-list-date .today-pin{display:inline-block;margin-top:3px;font-size:10.5px;font-weight:700;color:#fff;background:var(--primary);border-radius:999px;padding:0 7px}@media (max-width:1150px){.cal-layout{grid-template-columns:1fr}.cal-detail{position:static;max-height:none}}@media (max-width:760px){.cal-day{min-height:86px;padding:5px 4px 7px;gap:2px}.cal-daynum{font-size:12px;min-height:20px}.cal-ev{font-size:10.5px;padding:2px 4px}.cal-title{font-size:16px;min-width:96px}.cal-sum{width:100%;margin-left:0}.cal-list-day{grid-template-columns:68px minmax(0,1fr);gap:10px}}.clientcard{cursor:pointer;transition:box-shadow .12s,border-color .12s;box-shadow:var(--shadow-sm)}.clientcard:hover{box-shadow:var(--shadow)}.cardline{display:flex;justify-content:space-between;gap:10px;padding:2px 0}.cardline>span:last-child{text-align:right;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(280px,3fr) minmax(280px,3fr);grid-gap:18px;gap:18px;align-items:start}.workspace-grid>*{min-width:0}.workspace-col{position:-webkit-sticky;position:sticky;top:76px;max-height:calc(100vh - 100px);display:flex;flex-direction:column;min-width:0}@media (max-width:1200px){.workspace-grid{grid-template-columns:minmax(0,1fr) minmax(280px,1fr)}.workspace-col{position:static;max-height:none}}@media (max-width:800px){.workspace-grid{grid-template-columns:1fr}}.grid-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}.grid-stats a{text-decoration:none}.grid-stats a:hover .card{border-color:var(--border-strong)}.tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.tabs button{background:var(--surface);color:var(--muted);border:1px solid var(--border-strong)}.tabs button.on{background:var(--primary-soft);color:var(--primary);border-color:var(--primary-border)}.badge.ok{background:var(--ok-soft);color:var(--ok-text)}.badge.warn{background:var(--warn-soft);color:var(--warn-text)}.badge.danger{background:var(--danger-soft);color:var(--danger-text)}.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.steps{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}.step{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;min-width:130px;background:var(--surface)}.step.now{border-color:var(--primary);background:var(--primary-soft)}.step .who{font-weight:600;font-size:13px}.step .st{font-size:12px;color:var(--muted)}.appdialog{border:none;border-radius:var(--radius);padding:22px 24px;background:var(--surface);width:min(420px,calc(100vw - 32px));box-shadow:0 18px 48px rgba(16,24,40,.18);color:var(--text)}.appdialog::-webkit-backdrop{background:rgba(8,10,14,.55)}.appdialog::backdrop{background:rgba(8,10,14,.55)}.appdialog h3{margin:0 0 6px;font-size:16px;color:var(--text)}.appdialog p{margin:0}.appdialog[open]{animation:dialog-in .12s ease-out}@keyframes dialog-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.menu-backdrop,.menubtn{display:none}@media (max-width:760px){.sidebar{position:fixed;top:0;left:0;z-index:40;height:100vh;width:252px;padding:18px 14px;transform:translateX(-100%);transition:transform .18s ease-out;box-shadow:0 0 40px rgba(16,24,40,.18)}.app.menu-open .sidebar{transform:none}.sidebar .brand{padding:10px 8px 16px}.sidebar .brand img{height:34px}.sidebar .navlink{justify-content:flex-start;padding:11px 12px}.sidebar .navlink span{display:inline}.sidebar .navgroup,.sidebar .userbox .name,.sidebar .userbox .role{display:block}.sidebar .navbadge{position:static;margin-left:auto}.menu-backdrop{display:block;position:fixed;inset:0;background:rgba(16,24,40,.42);z-index:35}.menubtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;flex-shrink:0}.grid-stats{grid-template-columns:1fr 1fr;gap:10px}.grid-stats .card{padding:12px 14px}}.todo,.todos .row{gap:10px}.todo{display:inline-flex;align-items:center;padding:10px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);transition:border-color .12s,background .12s}.todo,.todo:hover{text-decoration:none}.todo:hover{border-color:var(--primary);background:var(--primary-soft)}.todo .n{font-size:20px;font-weight:700;line-height:1}.todo .t{font-size:13.5px}.todo.urgent{border-color:var(--danger-border);background:var(--danger-soft)}.todo.urgent .n{color:var(--danger)}.todo.urgent:hover{border-color:var(--danger)}.rowtools{margin-left:6px;white-space:nowrap}.rowtools button{padding:2px 6px;font-size:12px;line-height:1.2}.themebtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;flex-shrink:0;color:var(--muted)}.themebtn:hover{color:var(--text)}@media (max-width:760px){.topdate{display:none}}[data-theme=dark] .auth-card .logo img,[data-theme=dark] .sidebar .brand img{filter:brightness(0) invert(1);opacity:.92}