#app{display:flex;min-height:100vh}#app.locked{filter:blur(6px);pointer-events:none;user-select:none}.sidebar{width:248px;flex:0 0 248px;background:var(--surface);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;transition:width var(--base) var(--out),flex-basis var(--base) var(--out);z-index:45}.sidebar .sb-top{height:60px;display:flex;align-items:center;gap:10px;padding:0 14px 0 18px;border-bottom:1px solid var(--line)}.sidebar .sb-top .brand{flex:1;white-space:nowrap;overflow:hidden}.sidebar .sb-top .iconbtn{width:30px;height:30px;color:var(--ink-3)}#nav{flex:1;overflow:auto;padding:10px 10px 20px;scrollbar-width:thin}#nav .ni{display:flex;align-items:center;gap:10px;width:100%;height:36px;padding:0 10px;border-radius:9px;font-size:13px;font-weight:600;color:var(--ink-2);text-decoration:none;position:relative;white-space:nowrap;transition:background var(--fast),color var(--fast)}#nav .ni:hover{background:var(--surface-2);color:var(--ink)}#nav .ni.on{background:var(--blue-soft);color:var(--blue-ink)}#nav .ni .ic{width:20px;text-align:center;font-size:14px;color:var(--ink-3);flex:0 0 20px}#nav .ni.on .ic{color:var(--blue)}#nav .ni .car{margin-left:auto;color:var(--ink-4);transition:transform var(--base) var(--out);font-size:14px}#nav .ng.open .ni .car{transform:rotate(90deg)}#nav .ng.has>.ni{color:var(--ink)}#nav .ng .sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--base) var(--out)}#nav .ng.open .sub{grid-template-rows:1fr}#nav .ng .sub>*{overflow:hidden}#nav .sub a{display:flex;align-items:center;height:30px;padding:0 10px 0 40px;font-size:12.5px;font-weight:500;color:var(--ink-2);text-decoration:none;border-radius:8px;position:relative;white-space:nowrap}#nav .sub a:before{content:"";position:absolute;left:24px;top:50%;width:4px;height:4px;border-radius:50%;background:var(--line-2);transform:translateY(-50%)}#nav .sub a:hover{background:var(--surface-2);color:var(--ink)}#nav .sub a.on{color:var(--blue-ink);font-weight:700}#nav .sub a.on:before{background:var(--blue)}#nav .nb{margin-left:auto;background:var(--bad);color:#fff;font-size:10.5px;font-weight:800;min-width:18px;height:18px;padding:0 5px;border-radius:999px;display:inline-grid;place-items:center}#nav .sub .nb{margin-left:auto}.sidebar .sb-user{border-top:1px solid var(--line);padding:12px 14px;display:flex;align-items:center;gap:10px;font-size:12.5px}.sidebar .sb-user b{display:block;font-size:12.5px}.sidebar .sb-user small{color:var(--ink-3);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}body.nav-collapsed .sidebar{width:64px;flex-basis:64px}body.nav-collapsed #nav .ni span:not(.ic),body.nav-collapsed #nav .car,body.nav-collapsed #nav .sub,body.nav-collapsed .sb-top .brand,body.nav-collapsed .sb-user div,body.nav-collapsed #nav .nb{display:none}body.nav-collapsed #nav .ni{justify-content:center;padding:0}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0}#outlet{flex:1}.view{max-width:none}.pg{padding:22px 28px 60px;max-width:1400px;animation:viewIn var(--slow) var(--out) both}.crumbs{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3);margin-bottom:8px}.crumbs a{color:var(--ink-3);text-decoration:none}.crumbs a:hover{color:var(--blue)}.crumbs i{font-style:normal;color:var(--ink-4)}.ph{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.ph h1{font-size:22px;font-weight:800}.ph p{margin:4px 0 0;color:var(--ink-3);font-size:13px}.ph .kicker{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px}.ph .pa{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.pb.with-aside{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}.paside{position:sticky;top:76px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}.tabs a{padding:8px 14px;font-size:13px;font-weight:600;color:var(--ink-3);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color var(--fast)}.tabs a:hover{color:var(--ink)}.tabs a.on{color:var(--blue-ink);border-color:var(--blue)}.tabs .cnt{margin-left:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;font-size:11px;padding:0 6px;color:var(--ink-3)}.tabs a.on .cnt{background:var(--blue-soft);border-color:transparent;color:var(--blue-ink)}.sel{height:34px;border:1px solid var(--line-2);border-radius:9px;background:var(--surface);padding:0 28px 0 10px;font:inherit;font-size:13px;color:var(--ink);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237C8699' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.sel:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.btn.icon{width:34px;padding:0}.iconbtn.sm{width:28px;height:28px;font-size:16px;color:var(--ink-3)}.tbl{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-1);overflow:hidden}.tbar{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.tbar .search{position:relative;flex:1;min-width:200px;max-width:360px}.tbar .search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--ink-4)}.tbar .search input{width:100%;height:34px;border:1px solid var(--line-2);border-radius:9px;padding:0 10px 0 32px;font-size:13px}.tbar .search input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.tbar .cnt{margin-left:auto;font-size:12px;color:var(--ink-3)}.bulkbar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--blue-soft);border-bottom:1px solid var(--line);font-size:13px;animation:rise var(--base) var(--out)}.tscroll{overflow:auto}.tbl table{width:100%;border-collapse:collapse;font-size:13px}.tbl th{position:sticky;top:0;background:var(--surface-2);font-size:11.5px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;user-select:none}.tbl th.sortable{cursor:pointer}.tbl th.sortable:hover{color:var(--ink)}.tbl th .sarr{display:inline-block;width:8px;margin-left:5px;opacity:.35}.tbl th .sarr:after{content:"↕"}.tbl th.on .sarr{opacity:1;color:var(--blue)}.tbl th.on.asc .sarr:after{content:"↑"}.tbl th.on.desc .sarr:after{content:"↓"}.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr{transition:background var(--fast)}.tbl tbody tr:hover{background:var(--surface-2)}.tbl tbody tr.clickable{cursor:pointer}.tbl tbody tr.row-bad{background:#fff7f7}.tbl tbody tr.row-warn{background:#fffcf2}.tbl tbody tr.row-muted{opacity:.55}.tbl th.r,.tbl td.r{text-align:right}.tbl th.c,.tbl td.c{text-align:center}.tbl .chk{width:36px;text-align:center}.tbl td.acts,.tbl th.acts{width:44px;text-align:right}.tbl tfoot td{font-weight:700;background:var(--surface-2)}.pager{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:12px;color:var(--ink-3);border-top:1px solid var(--line)}.pager .pg{display:flex;gap:4px;align-items:center}.person{display:inline-flex;align-items:center;gap:9px}.person b{display:block;font-size:13px}.person small{display:block;color:var(--ink-3);font-size:11.5px}.av{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;flex:0 0 auto}input[type=checkbox]{accent-color:var(--blue);width:15px;height:15px;cursor:pointer}.empty{text-align:center;padding:36px 20px;color:var(--ink-3)}.empty .ic{font-size:30px;margin-bottom:6px;opacity:.5}.empty h4{font-size:14px;color:var(--ink-2)}.empty p{margin:4px 0 0;font-size:12.5px}.menu{position:fixed;z-index:120;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-3);padding:6px;min-width:200px;opacity:0;transform:translateY(-4px) scale(.98);transition:opacity var(--fast),transform var(--fast) var(--out)}.menu.on{opacity:1;transform:none}.menu button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:8px;font-size:13px;font-weight:500;text-align:left}.menu button:hover{background:var(--surface-2)}.menu button.danger{color:var(--bad)}.menu button.disabled{opacity:.45;cursor:not-allowed}.menu button small{margin-left:auto;color:var(--ink-3);font-size:11px}.menu .sep{height:1px;background:var(--line);margin:5px 4px}.menu .mi{width:18px;text-align:center;color:var(--ink-3)}.form{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr;gap:12px 14px}.form .fld{display:flex;flex-direction:column;gap:5px;grid-column:span 3}.form .fld.full{grid-column:span 6}.form .fld.third{grid-column:span 2}.form .fld.half{grid-column:span 3}.form .fld label{font-size:12px;font-weight:600;color:var(--ink-2)}.form .fld label .req{color:var(--bad);font-style:normal;margin-left:2px}.form input:not([type=checkbox]):not([type=radio]):not([type=color]),.form select,.form textarea{height:36px;border:1px solid var(--line-2);border-radius:9px;background:var(--surface);padding:0 11px;font:inherit;font-size:13.5px;color:var(--ink);transition:border-color var(--fast),box-shadow var(--fast)}.form textarea{height:auto;padding:8px 11px;resize:vertical;line-height:1.5}.form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237C8699' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.form input:disabled,.form select:disabled,.form textarea:disabled{background:var(--surface-2);color:var(--ink-3)}.form .fld.bad input,.form .fld.bad select,.form .fld.bad textarea{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}.form .fld .err{color:var(--bad);font-size:11.5px;min-height:0;display:none}.form .fld.bad .err{display:block;animation:rise var(--fast) var(--out)}.form .fld .hint{color:var(--ink-3);font-size:11.5px}.form .ro{height:36px;display:flex;align-items:center;padding:0 11px;background:var(--surface-2);border-radius:9px;font-size:13.5px;color:var(--ink-2)}.inwrap{position:relative;display:flex}.inwrap input{width:100%;padding-right:36px!important}.inwrap .suf{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-size:12.5px;font-weight:600}.form .check,.check{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;min-height:36px}.switch{display:flex;align-items:center;gap:10px;cursor:pointer;min-height:36px;font-size:13px}.switch input{position:absolute;opacity:0;width:0;height:0}.switch i{width:36px;height:20px;border-radius:999px;background:var(--line-2);position:relative;transition:background var(--base);flex:0 0 36px}.switch i:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform var(--base) var(--spring)}.switch input:checked+i{background:var(--ok)}.switch input:checked+i:after{transform:translate(16px)}.radios{display:flex;gap:6px;flex-wrap:wrap}.radio{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--line-2);border-radius:9px;font-size:13px;cursor:pointer;background:var(--surface);transition:all var(--fast)}.radio input{position:absolute;opacity:0;width:0;height:0}.radio:has(input:checked){border-color:var(--blue);background:var(--blue-soft);color:var(--blue-ink);font-weight:600}.file{display:flex;align-items:center;gap:10px;height:36px;border:1px dashed var(--line-2);border-radius:9px;padding:0 6px;cursor:pointer;font-size:12.5px;color:var(--ink-3)}.file input[type=file]{display:none}.file .fbtn{height:26px;padding:0 10px;border-radius:7px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);font-weight:600;display:inline-flex;align-items:center}.form .fld input[type=color]{width:60px;height:36px;padding:0;border:1px solid var(--line-2);border-radius:9px;background:none}.form.shake{animation:shake .4s}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.fset{grid-column:span 6;font-size:11.5px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;padding-top:8px;border-top:1px solid var(--line);margin-top:4px}.fset:first-child{border-top:0;margin-top:0;padding-top:0}.sheet.wide{width:720px}.sheet .sh h3 small{display:block;font-size:12px;color:var(--ink-3);font-weight:500;margin-top:2px}.sheet .body{display:flex;flex-direction:column}.dialog{position:fixed;z-index:90;left:50%;top:50%;width:460px;max-width:calc(100vw - 32px);background:var(--surface);border-radius:16px;box-shadow:var(--sh-3);transform:translate(-50%,-50%) scale(.96);opacity:0;pointer-events:none;transition:opacity var(--base),transform var(--base) var(--spring)}.dialog.on{opacity:1;transform:translate(-50%,-50%);pointer-events:auto}.dialog .dh{padding:18px 20px 6px}.dialog .dh h3{font-size:16px;font-weight:800}.dialog .db{padding:6px 20px 16px;font-size:13.5px;line-height:1.55;max-height:70vh;overflow:auto}.dialog .db p{margin:0}.dialog .df{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:var(--surface-2);border-radius:0 0 16px 16px}.notif-panel{position:fixed;top:64px;right:70px;width:380px;max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-3);z-index:75;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity var(--base),transform var(--base) var(--out)}.notif-panel.on{opacity:1;transform:none;pointer-events:auto}.nph{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);font-size:13px}.npi{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;font-size:12.5px;transition:background var(--fast)}.npi:hover{background:var(--surface-2)}.npi i{width:8px;height:8px;border-radius:50%;background:var(--line-2);margin-top:6px;flex:0 0 8px}.npi.unread i{background:var(--blue)}.npi.bad i{background:var(--bad)}.npi.warn i{background:var(--warn)}.npi b{display:block}.npi small{display:block;color:var(--ink-3)}.npi.unread b{font-weight:800}#bellCount{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--bad);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;border:2px solid #fff}#login{position:fixed;inset:0;z-index:200;background:var(--bg);display:none;overflow:auto}#login.on{display:block;animation:fade var(--slow) both}@keyframes fade{0%{opacity:0}to{opacity:1}}.lg-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;max-width:1180px;margin:0 auto;align-items:center;gap:40px;padding:40px}.lg-left h1{font-size:40px;font-weight:800;letter-spacing:-.03em;line-height:1.08;margin:28px 0 14px}.lg-left p{color:var(--ink-2);font-size:15px;max-width:460px}.lg-quick{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:520px}.lg-quick .acct{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;transition:all var(--fast)}.lg-quick .acct:hover{border-color:var(--blue);box-shadow:var(--sh-2);transform:translateY(-1px)}.lg-quick .acct b{display:block;font-size:13px;font-family:JetBrains Mono,monospace}.lg-quick .acct small{color:var(--ink-3);font-size:11.5px}.lg-form{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:30px 30px 26px;box-shadow:var(--sh-3);max-width:440px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.lg-form h2{font-size:22px;font-weight:800}.lg-form .fld{grid-column:auto}.prog{height:6px;background:var(--surface-2);border-radius:999px;overflow:hidden}.prog i{display:block;height:100%;background:var(--blue);border-radius:999px;transition:width var(--slow) var(--out)}.prog.ok i{background:var(--ok)}.prog.warn i{background:var(--warn)}.prog.bad i{background:var(--bad)}.hbars{display:flex;flex-direction:column;gap:8px}.hb{display:grid;grid-template-columns:150px 1fr 90px;align-items:center;gap:10px;font-size:12.5px}.hb .l{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hb .b{height:10px;background:var(--surface-2);border-radius:999px;overflow:hidden}.hb .b i{display:block;height:100%;border-radius:999px;animation:grow var(--slow) var(--out) both}@keyframes grow{0%{width:0!important}}.hb .v{text-align:right;font-weight:700}.qrsvg{width:140px;height:140px;display:block;margin:0 auto}.spark{width:100%;height:32px}.spark polyline{fill:none;stroke:var(--blue);stroke-width:2;stroke-linejoin:round}.stat{display:flex;flex-direction:column;gap:2px}.stat b{font-size:22px;font-weight:800;letter-spacing:-.02em}.stat span{font-size:12px;color:var(--ink-3)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stats .card{padding:14px 16px}.dl{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;font-size:13px}.dl dt{color:var(--ink-3)}.dl dd{margin:0}.kv{display:flex;flex-direction:column;gap:0}.cal{display:grid;grid-template-columns:70px repeat(7,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);font-size:12px}.cal .hd{background:var(--surface-2);padding:8px;font-weight:700;color:var(--ink-3);text-align:center;border-bottom:1px solid var(--line);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}.cal .hd.today{color:var(--blue-ink);background:var(--blue-soft)}.cal .tm{padding:8px;color:var(--ink-3);border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;text-align:right}.cal .cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:52px;padding:4px;display:flex;flex-direction:column;gap:3px}.cal .ev{background:var(--blue-soft);border-left:3px solid var(--blue);border-radius:6px;padding:4px 6px;font-size:11.5px;line-height:1.3;cursor:pointer;transition:transform var(--fast)}.cal .ev:hover{transform:translateY(-1px);box-shadow:var(--sh-2)}.cal .ev b{display:block}.cal .ev small{color:var(--ink-3)}.cal .ev.mine{background:var(--amber-soft);border-color:var(--amber)}.cal .ev.off{background:var(--bad-soft);border-color:var(--bad)}.att{display:grid;gap:2px;font-size:11.5px}.att .cellh{background:var(--surface-2);padding:6px 4px;text-align:center;font-weight:700;color:var(--ink-3);border-radius:6px;font-size:10.5px}.att .st{padding:6px 8px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.att .c{height:30px;border-radius:6px;background:var(--surface-2);cursor:pointer;display:grid;place-items:center;font-size:11px;transition:transform var(--fast)}.att .c:hover{transform:scale(1.08);box-shadow:var(--sh-2)}.att .c.p{background:var(--ok);color:#fff}.att .c.a{background:var(--bad);color:#fff}.att .c.f{background:transparent;cursor:default}.att .c.h{background:var(--amber-soft);cursor:default;color:#9a6200}.steps{display:flex;gap:0;align-items:center;margin:8px 0 16px}.steps .s{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3);font-weight:600}.steps .s i{width:24px;height:24px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;font-size:11px;font-style:normal;background:var(--surface)}.steps .s.done i{background:var(--ok);border-color:var(--ok);color:#fff}.steps .s.cur i{border-color:var(--blue);color:var(--blue-ink)}.steps .s.cur{color:var(--ink)}.steps .ln{flex:1;height:2px;background:var(--line);margin:0 8px;min-width:20px}.steps .ln.done{background:var(--ok)}.cart{border:1px solid var(--line);border-radius:12px;overflow:hidden}.cart .ln{display:grid;grid-template-columns:1fr 70px 120px 120px 36px;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);font-size:13px}.cart .ln:last-child{border-bottom:0}.cart .ln.head{background:var(--surface-2);font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase}.cart .ln small{display:block;color:var(--ink-3);font-size:11.5px}.cart input{height:30px;border:1px solid var(--line-2);border-radius:7px;padding:0 8px;width:100%;text-align:right}.total-box{background:var(--surface-2);border-radius:12px;padding:12px 14px}.total-box .row{border-bottom:0;padding:5px 0}.badge-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:11px;font-weight:700;color:var(--ink-2)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chipf{height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);font-size:12.5px;font-weight:600;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px;transition:all var(--fast)}.chipf:hover{border-color:var(--ink-4)}.chipf.on{background:var(--ink);border-color:var(--ink);color:#fff}.chipf .n{background:#00000014;border-radius:999px;padding:0 6px;font-size:11px}.chipf.on .n{background:#fff3}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.ocard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--sh-1);cursor:pointer;transition:transform var(--fast),box-shadow var(--fast)}.ocard:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}.ocard h4{font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:8px}.ocard .meta{font-size:12px;color:var(--ink-3);margin-top:4px}.ocard .foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:13px}.kanban{display:grid;grid-template-columns:repeat(7,minmax(200px,1fr));gap:10px;overflow-x:auto;padding-bottom:6px}.kanban .col{background:var(--bg-2);border-radius:12px;padding:8px;min-height:120px}.kanban .col h5{font-size:11.5px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;padding:4px 6px 8px;display:flex;justify-content:space-between}.kanban .ocard{padding:10px 12px;margin-bottom:8px}.tree{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.tree .node{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px}.tree .node:last-child{border-bottom:0}.tree .node.lvl1{background:var(--surface-2);font-weight:700}.tree .node.lvl2{padding-left:40px}.tree .node .sp{flex:1}.tree .node .muted{font-weight:500}.perm-grid{display:grid;grid-template-columns:1fr repeat(4,70px);font-size:13px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.perm-grid>div{padding:9px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center}.perm-grid>div:nth-child(5n+1){justify-content:flex-start;font-weight:600}.perm-grid .hd{background:var(--surface-2);font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase}.perm-grid .from-role{color:var(--ink-4)}.print-preview{background:#fff;border:1px solid var(--line);padding:24px;border-radius:12px;font-size:13px}.ptable{width:100%;border-collapse:collapse;margin-top:8px;font-size:12.5px}.ptable th,.ptable td{border:1px solid var(--line-2);padding:6px 8px;text-align:left}.ptable th{background:var(--surface-2)}.log-row{display:grid;grid-template-columns:130px 150px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px}.log-row .t{color:var(--ink-3);font-variant-numeric:tabular-nums}.log-row.flag{background:var(--bad-soft);margin:0 -10px;padding:9px 10px;border-radius:8px}.feed{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh-1)}.feed h4{font-size:15px}.feed .meta{font-size:12px;color:var(--ink-3);margin:4px 0 10px}.feed .body{font-size:13.5px;line-height:1.6}.feed.pinned{border-color:var(--amber);background:linear-gradient(180deg,#fffbf2,#fff)}.feed.expired{opacity:.55}.ai-side{position:sticky;top:76px}.ai-side .ai{margin-bottom:12px}.mini-kpi{display:flex;gap:16px;flex-wrap:wrap}.mini-kpi div{font-size:12px;color:var(--ink-3)}.mini-kpi b{display:block;font-size:18px;color:var(--ink)}.hl{background:var(--amber-soft);padding:0 3px;border-radius:3px}.skeleton{background:linear-gradient(90deg,var(--surface-2),var(--bg-2),var(--surface-2));background-size:200% 100%;animation:sk 1.2s infinite;border-radius:8px;height:14px}@keyframes sk{to{background-position:-200% 0}}.sheet .body .form{gap:10px 12px}.help-tip{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line-2);font-size:10px;color:var(--ink-3);cursor:help;margin-left:4px}.kbd{font-family:JetBrains Mono,monospace;font-size:10.5px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:5px;padding:1px 5px;color:var(--ink-3)}.status-flow{display:flex;gap:6px;flex-wrap:wrap}.status-flow .stp{display:flex;align-items:center;gap:6px;font-size:12px;padding:6px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-3);font-weight:600}.status-flow .stp.done{background:var(--ok-soft);color:var(--ok)}.status-flow .stp.cur{background:var(--blue-soft);color:var(--blue-ink)}.flash{animation:flash 1.2s var(--out)}@keyframes flash{0%{background:var(--amber-soft)}to{background:transparent}}.row-new{animation:rowin var(--slow) var(--out) both}@keyframes rowin{0%{opacity:0;transform:translateY(-6px);background:var(--amber-soft)}to{opacity:1;background:transparent}}.wide-num{font-size:26px;font-weight:800;letter-spacing:-.02em}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.section-title{font-size:12px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin:18px 0 8px}.section-title:first-child{margin-top:0}.note-list{display:flex;flex-direction:column;gap:8px}.note-item{background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:13px}.note-item small{display:block;color:var(--ink-3);font-size:11.5px;margin-top:3px}.sched-row{display:grid;grid-template-columns:36px 70px 1fr 1fr 1fr 1fr;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}.sched-row.off{opacity:.5}.sched-row .form-ctl{height:32px;border:1px solid var(--line-2);border-radius:8px;padding:0 8px;width:100%;font:inherit;font-size:13px;background:#fff}.conflict{color:var(--bad);font-size:11.5px;font-weight:600}@media (max-width:1100px){.sidebar{position:fixed;left:0;top:0;transform:translate(-100%)}.lg-wrap,.pb.with-aside{grid-template-columns:1fr}.form .fld{grid-column:span 6}}@media print{.sidebar,.topbar,.hint,.toasts{display:none!important}}.hint{left:268px}body.nav-collapsed .hint{left:84px}a.person{text-decoration:none;color:inherit}a.person:hover b{color:var(--blue)}.person b,.person small{white-space:nowrap}.brand img.logo{height:26px;width:auto;display:block}.brand{gap:8px}.brand small{margin-left:0}.lg-left .brand img.logo{height:44px}.lg-left .brand small{font-size:13px}body.nav-collapsed .sidebar .sb-top .brand{display:none}
