@import "https://fonts.googleapis.com/css2?family=Geologica:wght@300;500;600;700&family=Onest:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--paper:#eff2ed;--surface:#fff;--surface-2:#f5f7f2;--ink:#1d2621;--ink-dim:#5b6660;--line:#dbdfd5;--line-soft:#e7eae1;--grid-line:#1d262142;--accent:#2d6e7e;--accent-ink:#0f3f4a;--accent-soft:#dceaec;--amber:#b5811f;--amber-soft:#f3e7ce;--brick:#b14a3b;--brick-soft:#f5dfda;--green:#3f7d57;--green-soft:#dcede1;--violet:#7a5ca6;--violet-soft:#ece5f5;--clay:#a0673f;--weekend:#e7e4da;--shadow:0 1px 2px #1d26210f, 0 6px 20px -8px #1d262124;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#151b18;--surface:#1c2320;--surface-2:#212925;--ink:#e9ece6;--ink-dim:#9aa59d;--line:#333d37;--line-soft:#2a332d;--grid-line:#e9ece63d;--accent:#5fafc0;--accent-ink:#cff0f5;--accent-soft:#213a3e;--amber:#e0b15a;--amber-soft:#3b321c;--brick:#e08876;--brick-soft:#3d2521;--green:#7fc498;--green-soft:#1f3327;--violet:#b79edb;--violet-soft:#332b47;--clay:#d9a072;--weekend:#232b26;--shadow:0 1px 2px #0000004d, 0 6px 24px -8px #00000080}}:root[data-theme=dark]{--paper:#151b18;--surface:#1c2320;--surface-2:#212925;--ink:#e9ece6;--ink-dim:#9aa59d;--line:#333d37;--line-soft:#2a332d;--grid-line:#e9ece63d;--accent:#5fafc0;--accent-ink:#cff0f5;--accent-soft:#213a3e;--amber:#e0b15a;--amber-soft:#3b321c;--brick:#e08876;--brick-soft:#3d2521;--green:#7fc498;--green-soft:#1f3327;--violet:#b79edb;--violet-soft:#332b47;--clay:#d9a072;--weekend:#232b26;--shadow:0 1px 2px #0000004d, 0 6px 24px -8px #00000080}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);margin:0;font-family:Onest,system-ui,sans-serif;font-size:14px;line-height:1.45}h1,h2,h3{text-wrap:balance;letter-spacing:-.01em;margin:0;font-family:Geologica,system-ui,sans-serif}.mono{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,ui-monospace,monospace}button{font-family:inherit}a{color:var(--accent)}a,button,.btn,.navbtn,.chip,.cal-chip,.weekday-btn,.segmented button,.card,.task-row,.ref-row,.recur-item,.gantt-bar,.gantt-unscheduled-chip,.tag-chip,.badge,.icon-btn,.field-input,.field-textarea,.field-select,.searchable-select-option,input[type=checkbox],input[type=radio]{transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s,opacity .15s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex:0 0 236px;gap:22px;width:236px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:0 6px;display:flex}.snake-logo{filter:drop-shadow(0 0 3px var(--accent)) drop-shadow(0 0 8px var(--accent)) drop-shadow(0 0 16px var(--accent-soft));flex:none;font-size:32px;line-height:1;animation:3.2s ease-in-out infinite snake-glow;display:inline-block}.snake-logo.lg{font-size:72px}@keyframes snake-glow{0%,to{filter:drop-shadow(0 0 3px var(--accent)) drop-shadow(0 0 8px var(--accent)) drop-shadow(0 0 16px var(--accent-soft))}50%{filter:drop-shadow(0 0 6px var(--accent)) drop-shadow(0 0 16px var(--accent)) drop-shadow(0 0 30px var(--accent-soft))}}@media (prefers-reduced-motion:reduce){.snake-logo{animation:none}}.brand-text{flex-direction:column;display:flex}.brand-text b{letter-spacing:-.02em;font-family:Geologica;font-size:19px;font-weight:800}nav.mainnav{flex-direction:column;gap:2px;display:flex}.navbtn{color:var(--ink-dim);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-left-width:3px;border-radius:8px;align-items:center;gap:10px;margin-left:-3px;padding:9px 10px;font-size:13.5px;font-weight:600;text-decoration:none;display:flex}.navbtn svg{opacity:.85;flex:none}.navbtn:hover{background:var(--surface-2);color:var(--ink)}.navbtn.active{background:var(--accent-soft);color:var(--accent-ink);border-left:3px solid var(--accent)}.navbtn.active svg{opacity:1}.sidebar-foot{border-top:1px solid var(--line-soft);align-items:center;gap:10px;margin-top:auto;padding:10px 6px;display:flex}.avatar{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-ink);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.who b{font-size:12.5px;display:block}.who span{color:var(--ink-dim);font-size:11px}.logout-btn{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:11px;text-decoration:underline}main.content{flex:1;min-width:0;padding:26px 34px 60px}@keyframes page-fade-in{0%{transform:translateY(6px)}to{transform:translateY(0)}}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.topbar h1{font-size:24px;font-weight:800}.topbar .sub{color:var(--ink-dim);margin-top:3px;font-size:13px}.toprow-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--ink-dim)}.btn:active:not(:disabled){transform:scale(.96)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{background:0 0;border-color:#0000}.btn.small{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.searchbox{border:1px solid var(--line);background:var(--surface);color:var(--ink-dim);border-radius:8px;align-items:center;gap:8px;min-width:220px;padding:7px 12px;font-size:13px;display:flex}.searchbox input{color:var(--ink);font:inherit;background:0 0;border:none;outline:none;width:100%}.segmented{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{background:var(--surface);border:none;border-right:1px solid var(--line);color:var(--ink-dim);cursor:pointer;padding:7px 14px;font-size:13px;font-weight:600}.segmented button:last-child{border-right:none}.segmented button.active{background:var(--accent-soft);color:var(--accent-ink)}.filters{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.chip{border:1px solid var(--line);color:var(--ink-dim);background:var(--surface);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600}.chip.active{background:var(--ink);color:var(--surface);border-color:var(--ink)}.grid-objects{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer;color:inherit;border-radius:12px;flex-direction:column;gap:10px;padding:12px 14px 14px;text-decoration:none;display:flex}.card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 2px 6px #1d262114,0 14px 30px -10px #1d262138}.card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.card-title{font-family:Geologica;font-size:15px;font-weight:700;line-height:1.3}.badge{white-space:nowrap;letter-spacing:.01em;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700}.badge.at_risk{background:var(--brick-soft);color:var(--brick)}.badge.paused{background:var(--amber-soft);color:var(--amber)}.badge.done{background:var(--green-soft);color:var(--green)}.card-meta{color:var(--ink-dim);font-size:12.5px}.card-meta b{color:var(--ink);font-weight:600}.progress-row{align-items:center;gap:8px;display:flex}.progress-track{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:99px;flex:1;height:7px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:99px;height:100%}.progress-fill.done{background:var(--green)}.progress-fill.at_risk{background:var(--brick)}.progress-fill.paused{background:var(--amber)}.progress-pct{color:var(--ink-dim);text-align:right;width:36px;font-family:IBM Plex Mono;font-size:12px;font-weight:700}.card-foot{color:var(--ink-dim);border-top:1px dashed var(--line-soft);justify-content:space-between;align-items:center;margin-top:2px;padding-top:9px;font-size:11.5px;display:flex}.tagset{flex-wrap:wrap;gap:5px;display:flex}.tag{border-radius:5px;padding:2px 7px;font-size:10.5px;font-weight:700}.card-cover{aspect-ratio:16/9;background:var(--surface-2);border-radius:8px;position:relative;overflow:hidden}.card-cover img{object-fit:cover;width:100%;height:100%;display:block}.card-cover svg{width:100%;height:100%;display:block}.card-due-badge{z-index:1;background:var(--violet);color:#fff;min-width:24px;height:24px;filter:drop-shadow(0 0 3px var(--violet)) drop-shadow(0 0 8px var(--violet));border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-family:IBM Plex Mono;font-size:12.5px;font-weight:700;animation:1.6s ease-in-out infinite card-due-glow;display:flex;position:absolute;top:8px;right:8px}@keyframes card-due-glow{0%,to{filter:drop-shadow(0 0 3px var(--violet)) drop-shadow(0 0 6px var(--violet))}50%{filter:drop-shadow(0 0 6px var(--violet)) drop-shadow(0 0 15px var(--violet))}}@media (prefers-reduced-motion:reduce){.card-due-badge{animation:none}}.section-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-heading h2{font-size:15px;font-weight:800}.ongoing-toggle{cursor:pointer;align-items:flex-start;gap:8px;margin:10px 0 4px;font-size:12.5px;font-weight:600;display:flex}.ongoing-toggle input[type=checkbox]{accent-color:var(--violet);flex:none;margin-top:2px}.back-link{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;margin-bottom:10px;padding:0;font-size:12.5px;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--ink)}.detail-head{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;margin-bottom:18px;padding:12px 16px}.detail-head-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.detail-thumb{background:var(--surface-2);border-radius:9px;flex:none;width:52px;height:52px;position:relative;overflow:hidden}.detail-thumb img,.detail-thumb svg{object-fit:cover;width:100%;height:100%;display:block}.detail-head-info{flex:240px;min-width:0}.detail-head-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.detail-title{margin:0;font-family:Geologica;font-size:16px;font-weight:800}.detail-head-meta-line{color:var(--ink-dim);flex-wrap:wrap;gap:6px;margin-top:3px;font-size:12px;display:flex}.detail-head-meta-line .dot{opacity:.5}.detail-progress{flex:none;align-items:center;gap:8px;display:flex}.ring{flex:none;width:38px;height:38px}.detail-head-actions{flex:none;gap:6px;display:flex}.detail-head-goal{color:var(--ink-dim);border-top:1px dashed var(--line-soft);margin-top:8px;padding-top:8px;font-size:12.5px}.subnav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.subnav-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.recur-section{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;margin-bottom:18px;overflow:hidden}.recur-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:12px 16px;display:flex}.recur-chevron{color:var(--ink-dim);font-size:15px;transition:transform .15s;display:inline-block}.recur-chevron.open{transform:rotate(90deg)}.recur-title{font-size:13.5px;font-weight:700}.recur-count{color:var(--ink-dim);background:var(--surface-2);border-radius:999px;padding:1px 8px;font-size:11px}.recur-due-badge{color:var(--violet);background:var(--violet-soft);border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}.recur-body{flex-direction:column;gap:6px;padding:0 16px 14px;display:flex}.recur-item{background:var(--violet-soft);cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:9px 12px;display:flex}.recur-item.overdue{background:var(--brick-soft)}.recur-item.overdue .recur-check{border-color:var(--brick)}.recur-item-late{color:var(--brick);white-space:nowrap;flex:none;font-size:11px;font-weight:700}.recur-overdue-badge{color:var(--brick);background:var(--brick-soft);border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}.recur-item.dim{opacity:.5}.recur-item.dim:hover{opacity:.8}.recur-check{border:2px solid var(--violet);color:#fff;cursor:pointer;background:0 0;border-radius:6px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:12px;font-weight:700;display:flex}.recur-check.done{background:var(--violet)}.recur-check.placeholder{border:none}.recur-item-main{flex:1;min-width:0}.recur-item-title{font-size:13px;font-weight:600}.recur-item-desc{color:var(--ink-dim);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11.5px;overflow:hidden}.recur-item-freq{color:var(--violet);white-space:nowrap;flex:none;font-size:11px;font-weight:600}.weekday-picker{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.weekday-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:7px;padding:6px 10px;font-size:12.5px;font-weight:600}.weekday-btn.active{background:var(--violet);border-color:var(--violet);color:#fff}.recur-schedule{margin-top:4px}.recur-schedule-start{color:var(--ink-dim);margin-bottom:8px;font-size:12px}.recur-schedule-grid{flex-wrap:wrap;gap:6px;max-height:180px;display:flex;overflow-y:auto}.recur-schedule-chip{white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-family:IBM Plex Mono;font-size:11px;font-weight:600;display:inline-flex}.recur-schedule-chip.done{background:var(--green-soft);color:var(--green)}.recur-schedule-chip.late{background:var(--amber-soft);color:var(--amber)}.recur-schedule-chip.missed{background:var(--brick-soft);color:var(--brick)}.recur-schedule-chip.today{background:var(--violet-soft);color:var(--violet);border:1px dashed var(--violet)}.stage-block{margin-bottom:18px}.stage-title{color:var(--ink-dim);align-items:center;gap:8px;margin-bottom:8px;font-size:11.5px;font-weight:700;display:flex}.stage-title .tag{text-transform:none;letter-spacing:0}.task-row{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:9px;grid-template-columns:22px 172px 1.3fr 110px 130px 140px 30px;align-items:center;gap:12px;margin-bottom:6px;padding:10px 12px;display:grid;position:relative}.task-row:hover{border-color:var(--accent)}.task-row.dragging{opacity:.4}.task-row.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.task-row.drop-child{border-color:var(--accent)}.task-sub-marker{color:var(--ink-dim);font-size:13px;position:absolute;top:50%;left:-20px;transform:translateY(-50%)}.task-drop-end{border:1.5px dashed var(--line);text-align:center;color:var(--ink-dim);border-radius:9px;padding:8px;font-size:11px}.task-check{border:2px solid var(--line);width:18px;height:18px;color:var(--ink-dim);background:0 0;border-radius:5px;flex:none;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:11px;line-height:1;display:flex}.task-check.done{background:var(--green);border-color:var(--green);color:#fff}.task-check.in_progress{border-color:var(--accent);color:var(--accent)}.task-check.paused{border-color:var(--amber);color:var(--amber)}.task-check.at_risk{border-color:var(--brick);color:var(--brick)}.task-check.blocked{border-color:var(--violet);color:var(--violet)}.status-picker{display:inline-flex;position:relative}.status-picker-trigger{cursor:pointer}.status-picker-trigger:hover{filter:brightness(.94);transform:scale(1.08)}.status-picker-menu{z-index:1000;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);transform-origin:0 0;border-radius:8px;flex-direction:column;gap:1px;padding:4px;animation:.12s menu-fade-in;display:flex;position:fixed}.status-picker-option{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-family:inherit;font-size:12.5px;display:flex}.status-picker-option:hover:not(:disabled){background:var(--accent-soft)}.status-picker-option.active{background:var(--surface-2);font-weight:700}.status-picker-option:disabled{opacity:.4;cursor:not-allowed}.status-picker-option .task-check{pointer-events:none}.status-picker-hint{border-top:1px solid var(--line);color:var(--ink-dim);flex-direction:column;gap:2px;margin:3px 2px 1px;padding:6px 8px;font-size:11px;display:flex}.status-picker-link{text-align:left;font:inherit;color:var(--accent);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;padding:0;font-weight:700;overflow:hidden}.status-picker-link:disabled{color:var(--ink);cursor:default}.status-picker-link:hover:not(:disabled){text-decoration:underline}.field-k-note .status-picker-link{max-width:100%;display:block}.task-main .t{font-size:13.3px;font-weight:600;text-decoration-line:line-through;text-decoration-color:#0000;text-decoration-thickness:1.5px;transition:text-decoration-color .28s,color .2s}.task-main .t.is-done{color:var(--ink-dim);text-decoration-color:currentColor}.task-main .s{color:var(--ink-dim);flex-wrap:wrap;align-items:center;gap:4px 7px;margin-top:3px;font-size:11.5px;display:flex}.task-assignee{color:var(--ink-dim);font-size:12px}.task-dates{color:var(--ink-dim);font-family:IBM Plex Mono;font-size:11.5px}.task-progress{align-items:center;gap:7px;display:flex}.task-progress .progress-track{height:6px}.task-chev{color:var(--ink-dim);text-align:right}.checklist-count{align-items:center;gap:4px;font-family:IBM Plex Mono;font-size:11px;display:inline-flex}.dep-flag{white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:10.5px;font-weight:700;display:inline-flex}.dep-flag.blocked{background:var(--brick-soft);color:var(--brick)}.dep-flag.blocking{background:var(--violet-soft);color:var(--violet)}.archive-block{border-top:1px solid var(--line-soft);margin-top:26px;padding-top:14px}.archive-toggle{cursor:pointer;width:100%;color:var(--ink-dim);background:0 0;border:none;align-items:center;gap:8px;padding:0 0 10px;font-size:11.5px;font-weight:700;display:flex}.archive-toggle:hover{color:var(--ink)}.archive-toggle .chev{font-size:12px;transition:transform .15s}.archive-toggle .chev.open{transform:rotate(90deg)}.archive-toggle .stage-count{text-transform:none;letter-spacing:0;font-weight:500}.tag-chip-row{flex-wrap:wrap;gap:6px;margin:4px 0;display:flex}.tag-chip{border:1px solid var(--line);background:var(--surface-2);color:var(--ink-dim);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:1px 9px;font-size:10.5px;font-weight:600;display:inline-flex}.tag-remove{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;line-height:1}.tag-remove:hover{color:var(--brick)}.tag-add-row{gap:6px;margin-top:8px;display:flex}.cat-select{appearance:none;cursor:pointer;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23666' stroke-width='1.4' fill='none'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:8px;border:none;border-radius:999px;max-width:172px;padding:4px 22px 4px 10px;font-family:inherit;font-size:10.5px;font-weight:700}.cat-new-input,.assignee-select{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 10px;font-size:10.5px;font-weight:600}.gantt-wrap{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:26px 18px 20px;overflow:auto}.gantt-inner{position:relative}.gantt-row-labels{width:210px;position:absolute;top:0;left:0}.gantt-label{border-bottom:1px dashed var(--line-soft);flex-direction:column;justify-content:center;gap:1px;height:38px;padding-right:10px;font-size:12.5px;font-weight:600;display:flex;overflow:hidden}.gantt-label-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gantt-label-sub{color:var(--ink-dim);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;overflow:hidden}.gantt-plot{margin-left:220px;position:relative}.gantt-month-header{display:flex}.gantt-month{color:var(--ink-dim);text-align:center;border-right:1px solid var(--line-soft);text-transform:capitalize;white-space:nowrap;flex:none;padding-bottom:3px;font-size:10.5px;font-weight:700;overflow:hidden}.gantt-day-header{border-bottom:1px solid var(--line);margin-bottom:2px;display:flex}.gantt-day{color:var(--ink-dim);text-align:center;border-right:1px solid var(--line-soft);flex:none;padding-bottom:5px;font-family:IBM Plex Mono;font-size:10px}.gantt-grid-row{border-bottom:1px dashed var(--line-soft);height:38px}.gantt-weekend-col{pointer-events:none;background:#b14a3b0b;position:absolute;top:0;bottom:0}.gantt-bar{color:#fff;white-space:nowrap;cursor:grab;text-align:left;border:none;border-radius:6px;align-items:center;height:22px;padding:0 8px;font-size:11px;font-weight:700;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px 3px #00000026}.gantt-bar.dragging{cursor:grabbing;z-index:5;box-shadow:0 3px 10px #0000004d}.gantt-bar.done{background-image:repeating-linear-gradient(135deg,#fff6 0 6px,#fff0 6px 12px)}.gantt-bar .pct{opacity:.85;margin-left:auto;font-family:IBM Plex Mono}.gantt-bar.clipped-start{cursor:pointer;border-top-left-radius:0;border-bottom-left-radius:0}.gantt-bar.clipped-end{cursor:pointer;border-top-right-radius:0;border-bottom-right-radius:0}.gantt-bar.clipped-start:before,.gantt-bar.clipped-end:after{content:"";pointer-events:none;background-image:repeating-linear-gradient(-45deg,#0006 0 3px,#0000 3px 6px);width:8px;position:absolute;top:0;bottom:0}.gantt-bar.clipped-start:before{left:0}.gantt-bar.clipped-end:after{right:0}.gantt-pop{z-index:60;background:var(--surface-solid,var(--glass-modal));border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--ink);border-radius:10px;padding:8px 10px;font-size:11.5px;position:fixed;box-shadow:0 10px 28px -8px #00000080}.gantt-pop-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:3px;font-size:12px;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.gantt-pop-row{color:var(--ink-dim);line-height:1.45}.gantt-pop-open{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;font-size:11.5px;font-weight:700}.gantt-pop-arrow{background:inherit;border-right:1px solid var(--line);border-bottom:1px solid var(--line);width:8px;height:8px;margin-left:-4px;position:absolute;bottom:-5px;transform:rotate(45deg)}.gantt-pop.below .gantt-pop-arrow{top:-5px;bottom:auto;transform:rotate(225deg)}.gantt-bar-handle{cursor:ew-resize;width:8px;position:absolute;top:0;bottom:0}.gantt-bar-handle.left{left:0}.gantt-bar-handle.right{right:0}.gantt-bar-handle:after{content:"";opacity:0;background:#ffffff8c;border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:25%;bottom:25%;left:50%}.gantt-bar:hover .gantt-bar-handle:after{opacity:1}.gantt-today{background:var(--brick);pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.gantt-today-label{color:var(--brick);white-space:nowrap;font-family:IBM Plex Mono;font-size:10px;font-weight:700;position:absolute;top:-18px;transform:translate(-50%)}.gantt-plot.drop-active{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft)}.gantt-unscheduled{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-top:16px;padding:14px 18px}.gantt-unscheduled-title{color:var(--ink-dim);align-items:center;gap:8px;font-size:11.5px;font-weight:700;display:flex}.gantt-unscheduled-hint{color:var(--ink-dim);margin-top:2px;margin-bottom:10px;font-size:11.5px}.gantt-unscheduled-list{flex-wrap:wrap;gap:8px;display:flex}.gantt-unscheduled-chip{background:var(--surface-2);border:1px solid var(--line);cursor:grab;text-overflow:ellipsis;white-space:nowrap;border-radius:9px;align-items:center;gap:7px;max-width:260px;padding:7px 12px;font-size:12.5px;font-weight:600;display:inline-flex;overflow:hidden}.gantt-unscheduled-chip:hover{border-color:var(--accent)}.gantt-unscheduled-chip.dragging{opacity:.4;cursor:grabbing}.gantt-unscheduled-chip .dot{border-radius:999px;flex:none;width:9px;height:9px}.overlay{z-index:50;background:#0f141166;justify-content:flex-end;animation:.15s overlay-fade-in;display:flex;position:fixed;inset:0}.overlay:not(.center)>*{animation:.22s cubic-bezier(.16,1,.3,1) drawer-slide-in}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes drawer-slide-in{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}@keyframes modal-pop-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.drawer{background:var(--surface);width:min(440px,92vw);height:100%;padding:22px 22px 30px;overflow:auto;box-shadow:-8px 0 30px #00000026}.drawer-close{float:right}.danger-link{float:right;color:var(--brick);margin-right:8px}.danger-link:hover{text-decoration:underline}.overlay.center{justify-content:center;align-items:center}.overlay.center .drawer{border-radius:14px;width:min(520px,92vw);height:auto;max-height:88vh}.task-modal{background:var(--surface);width:min(1320px,94vw);height:min(860px,88vh);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.task-modal-top{border-bottom:1px solid var(--line-soft);flex:none;align-items:center;gap:10px;padding:14px 20px;display:flex}.task-modal-top h2{font-size:15px}.task-modal-body{flex:auto;grid-template-columns:minmax(0,1fr) 300px 300px;min-height:0;display:grid}.task-main-col,.task-side-col{flex-direction:column;gap:20px;padding:20px 22px 26px;display:flex;overflow-y:auto}.task-main-col{border-right:1px solid var(--line-soft)}.task-comments-col{border-right:1px solid var(--line-soft);flex-direction:column;gap:10px;min-height:0;padding:20px 0 16px;display:flex;overflow:hidden}.task-comments-col>.field-k{margin:0;padding:0 22px}.comments-panel{flex-direction:column;flex:auto;min-height:0;display:flex}.task-title-input{color:var(--ink);background:0 0;border:none;outline:none;width:100%;padding:0;font-family:Geologica,system-ui,sans-serif;font-size:20px;font-weight:800}.task-modal-bottom{border-top:1px solid var(--line-soft);flex:none;align-items:center;gap:10px;padding:14px 20px;display:flex}.task-modal-bottom .danger-link{float:none;margin-right:0}@media (width<=980px){.task-modal{width:96vw;height:92vh}.task-modal-body{grid-template-columns:1fr;overflow-y:auto}.task-main-col,.task-side-col{border-right:none;overflow-y:visible}.task-comments-col{border-right:none;border-top:1px solid var(--line-soft);overflow:visible}.task-comments-col .comment-list{max-height:none;overflow-y:visible}}.field-k{color:var(--ink-dim);margin:14px 0 4px;font-size:10.5px;font-weight:700}.field-k-note{text-transform:none;opacity:.75;letter-spacing:0;font-size:10.5px;font-weight:500}.field-v{font-size:13.5px}.field-input,.field-textarea,.field-select{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13.5px}.field-input:focus,.field-textarea:focus,.field-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field-textarea{resize:vertical;min-height:60px}.field-row{gap:10px;display:flex}.field-row>*{flex:1;min-width:0}.richtext{border:1px solid var(--line);background:var(--surface);border-radius:8px;overflow:hidden}.richtext-toolbar{border-bottom:1px solid var(--line-soft);background:var(--surface-2);flex-wrap:wrap;gap:2px;padding:6px;display:flex}.richtext-toolbar button{color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 6px;font-size:12px;display:inline-flex}.richtext-toolbar button:hover{background:var(--surface);border-color:var(--line)}.richtext-toolbar button.active{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}.richtext-sep{background:var(--line);width:1px;margin:3px 2px}.richtext-content{min-height:140px;max-height:360px;padding:10px 12px;font-size:13.5px;overflow:auto}.richtext-content .tiptap{outline:none}.richtext-content .tiptap p{margin:0 0 8px}.richtext-content .tiptap p:last-child{margin-bottom:0}.richtext-content .tiptap h1,.richtext-content .tiptap h2,.richtext-content .tiptap h3{margin:12px 0 6px;font-family:Geologica,system-ui,sans-serif;line-height:1.25}.richtext-content .tiptap h1{font-size:19px}.richtext-content .tiptap h2{font-size:16.5px}.richtext-content .tiptap h3{font-size:14.5px}.richtext-content .tiptap ul,.richtext-content .tiptap ol{margin:0 0 8px;padding-left:22px}.richtext-content .tiptap blockquote{border-left:3px solid var(--accent);color:var(--ink-dim);margin:8px 0;padding:2px 0 2px 12px;font-style:italic}.richtext-content .tiptap hr{border:none;border-top:1px dashed var(--line);margin:14px 0}.richtext-content .tiptap a{color:var(--accent);text-decoration:underline}.richtext-content .tiptap img.richtext-image{border-radius:8px;max-width:100%;margin:6px 0;display:block}.richtext-content .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;color:var(--ink-dim);opacity:.7;pointer-events:none}.checklist-item{border-bottom:1px solid var(--line-soft);align-items:center;gap:9px;padding:7px 0;font-size:13px;display:flex}.checklist-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);flex:none}.checklist-item span{flex:1}.checklist-item.checked span{color:var(--ink-dim);text-decoration:line-through}.checklist-remove{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;flex:none;padding:2px 4px;font-size:15px;line-height:1}.checklist-remove:hover{color:var(--brick)}.checklist-empty{color:var(--ink-dim);padding:6px 0;font-size:12.5px;font-style:italic}.checklist-add{gap:6px;margin-top:8px;display:flex}.checklist-add-input,.tag-add-input{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:7px;flex:1;padding:6px 10px;font-size:12.5px}.dep-pill{background:var(--surface-2);border:1px solid var(--line);border-radius:7px;align-items:center;gap:6px;margin:4px 4px 0 0;padding:5px 10px;font-size:12px;display:inline-flex}.dep-checkbox-row{align-items:center;gap:8px;padding:5px 0;font-size:13px;display:flex}.comment-list{flex-direction:column;flex:auto;gap:8px;padding:0 22px 8px;display:flex;overflow-y:auto}.comment-item{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:8px;padding:8px 10px}.comment-meta{color:var(--ink-dim);justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;font-size:11px;display:flex}.comment-meta b{color:var(--ink);font-size:12px}.comment-text{white-space:pre-wrap;word-break:break-word;font-size:13px}.comment-add{border-top:1px solid var(--line-soft);flex-direction:column;flex:none;align-items:flex-end;gap:6px;padding:12px 22px 0;display:flex}.comment-add .field-textarea{width:100%;min-height:44px}.attachment-list{flex-direction:column;gap:6px;margin-bottom:4px;display:flex}.attachment-item{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;display:flex}.attachment-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;text-decoration:none;overflow:hidden}.attachment-name:hover{text-decoration:underline}.attachment-remove{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;flex:none;padding:0 2px;font-size:15px;line-height:1}.attachment-remove:hover{color:var(--brick)}.tag-manage-add{gap:8px;max-width:420px;margin-bottom:18px;display:flex}.tag-manage-list{flex-wrap:wrap;gap:10px;display:flex}.tag-chip.lg{border-radius:999px;gap:8px;padding:7px 12px;font-size:13px}.tag-chip.lg .tag-remove{font-size:16px}.ts-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.month-switch{align-items:center;gap:10px;font-family:Geologica;font-size:15px;font-weight:700;display:flex}.month-switch button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:7px;width:28px;height:28px}.legend{color:var(--ink-dim);flex-wrap:wrap;gap:14px;margin-bottom:12px;font-size:11.5px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.legend i{border:1px solid var(--line);border-radius:3px;width:11px;height:11px;display:inline-block}.ts-scroll{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:12px;overflow-x:auto}table.ts{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}table.ts th,table.ts td{text-align:center;border-right:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line);padding:0}table.ts thead th{color:var(--ink-dim);background:var(--surface-2);z-index:2;border-bottom:2px solid var(--line);padding:9px 4px;font-size:10.5px;font-weight:700;position:sticky;top:0}table.ts th.dow{font-weight:600;line-height:1.6}table.ts td.name-cell,table.ts th.name-cell{text-align:left;background:var(--surface);min-width:190px;box-shadow:2px 0 0 var(--line);cursor:pointer;border-right:2px solid var(--line);z-index:1;padding:10px 14px;font-weight:600;position:sticky;left:0}table.ts thead th.name-cell{background:var(--surface-2);z-index:3}table.ts td.name-cell:hover{color:var(--accent)}table.ts td.personnel-cell,table.ts th.personnel-cell{white-space:nowrap;color:var(--ink-dim);padding:0 10px;font-family:IBM Plex Mono;font-weight:600}table.ts td.personnel-cell{font-size:12px}.ts-order{grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;display:grid}.ts-order-col{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;flex-direction:column;gap:5px;min-height:120px;padding:8px;display:flex}.ts-order-col h4{color:var(--ink-dim);margin:0 0 4px;font-size:11px}.ts-order-col.drop{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft)}.ts-order-item{border:1px solid var(--line);background:var(--surface);cursor:grab;border-radius:8px;align-items:center;gap:8px;padding:6px 9px;font-size:12.5px;display:flex}.ts-order-item.dragging{opacity:.4}.ts-order-item.over{box-shadow:inset 0 2px 0 var(--accent)}.ts-order-num{color:var(--accent);width:16px;font:700 11px IBM Plex Mono}.ts-order-x{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;margin-left:auto}.ts-order-empty{color:var(--ink-dim);padding:6px 2px;font-size:12px}.ts-hint{color:var(--ink-dim);background:var(--surface-2);border:1px solid var(--line-soft);border-radius:8px;margin:10px 0;padding:9px 12px;font-size:12px;line-height:1.45}table.ts td.name-cell .pos{color:var(--ink-dim);margin-top:1px;font-size:11px;font-weight:400;display:block}table.ts td.daycell{cursor:pointer;width:34px;height:44px;font-family:IBM Plex Mono;font-size:12.5px;font-weight:700;position:relative}.mark-corner{border-style:solid;border-width:0 11px 11px 0;border-color:transparent var(--mark-color) transparent transparent;pointer-events:none;width:0;height:0;position:absolute;top:0;right:0}.legend i.legend-corner{background:var(--surface);border-radius:2px;position:relative;overflow:hidden}.legend i.legend-corner:after{content:"";border-style:solid;border-width:0 8px 8px 0;border-color:transparent var(--mark-color) transparent transparent;position:absolute;top:0;right:0}.mark-late{--mark-color:var(--amber)}.mark-excused{--mark-color:var(--violet)}.mark-force_majeure{--mark-color:var(--brick)}.mark-agreed_absence{--mark-color:var(--accent)}table.ts td.daycell.weekend,table.ts th.weekend{background:var(--weekend)}table.ts td.daycell:hover{outline:2px solid var(--accent);outline-offset:-2px}@keyframes ts-today-glow{0%,to{box-shadow:inset 0 0 0 1px var(--accent), 0 0 3px var(--accent-soft)}50%{box-shadow:inset 0 0 0 1px var(--accent), 0 0 7px var(--accent-soft)}}@media (prefers-reduced-motion:reduce){table.ts th.dow.today,table.ts td.daycell.today{animation:none}}td.code-Я{color:var(--ink)}td.code-Б{background:var(--brick-soft);color:var(--brick)}td.code-ПР{background:var(--brick-soft);color:var(--brick)}td.code-БС{background:var(--amber-soft);color:var(--amber)}table.ts td.sum-cell,table.ts th.sum-cell{border-left:2px solid var(--line);padding:8px 10px;font-family:IBM Plex Mono;font-weight:700}.delta.pos{color:var(--green)}.delta.neg{color:var(--brick)}.delta.zero{color:var(--ink-dim)}table.emp-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}table.emp-table thead th{text-align:left;color:var(--ink-dim);background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:11px 16px;font-size:10.5px}table.emp-table tbody td{border-bottom:1px solid var(--line-soft);padding:11px 16px}table.emp-table tbody tr:last-child td{border-bottom:none}.emp-name-cell{align-items:center;gap:10px;display:flex}.emp-avatar-sm{background:var(--accent-soft);width:32px;height:32px;color:var(--accent-ink);border-radius:50%;flex:none;justify-content:center;align-items:center;font-family:Geologica;font-size:12px;font-weight:700;display:flex}table.emp-table td.mono{font-family:IBM Plex Mono}.mini-cal{grid-template-columns:repeat(7,1fr);gap:4px;margin-top:8px;display:grid}.mini-cal .dow{color:var(--ink-dim);text-align:center;font-size:10px;font-weight:700}.mini-cell{aspect-ratio:1;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;font-family:IBM Plex Mono;font-size:10.5px;display:flex}.mini-cell.empty{background:0 0;border:none}.mini-cell b{font-size:11px}.stat-tiles{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;display:grid}.stat-tile{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:10px;padding:10px 12px}.stat-tile .k{color:var(--ink-dim);font-size:10.5px;font-weight:700}.stat-tile .v{margin-top:2px;font-family:IBM Plex Mono;font-size:18px;font-weight:700}.cal-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--line);width:100%;box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.cal-table th{text-align:left;color:var(--ink-dim);background:var(--surface-2);border-bottom:1px solid var(--line);padding:10px 14px;font-size:11px}.cal-table td{border-bottom:1px solid var(--line-soft);padding:9px 14px;font-size:13px}.holiday-list{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.holiday-chip{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:8px 12px;font-size:12.5px}.holiday-chip b{margin-right:6px;font-family:IBM Plex Mono}.note{color:var(--ink-dim);max-width:62ch;margin-top:12px;font-size:12px}.login-shell{background:var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--surface);border:1px solid var(--line);width:min(360px,100%);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:14px;padding:28px 26px;animation:.25s cubic-bezier(.16,1,.3,1) modal-pop-in;display:flex}.login-card .snake-logo{align-self:center;margin:4px 0 8px}.login-error{color:var(--brick);font-size:12.5px}.empty-state{color:var(--ink-dim);text-align:center;padding:30px 0;font-size:13.5px}.gen-grid{grid-template-columns:300px 1fr 280px;align-items:start;gap:16px;display:grid}@media (width<=1100px){.gen-grid{grid-template-columns:1fr}}.card-h{border-bottom:1px solid var(--line-soft);margin-bottom:2px;padding-bottom:10px;font-family:Geologica;font-size:14.5px;font-weight:700}.recipient-info{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:8px;flex-direction:column;gap:3px;padding:10px 12px;font-size:12.5px;display:flex}.recipient-info b{color:var(--ink)}.recipient-info span{color:var(--ink-dim)}.mailing-row{cursor:pointer;align-items:center;gap:9px;padding:7px 0;font-size:13px;display:flex}.mailing-row .count{color:var(--ink-dim);margin-left:auto;font-family:IBM Plex Mono;font-size:11px}.mailing-row input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.radio-row{align-items:center;gap:16px;font-size:13px;display:flex}.radio-row label{cursor:pointer;align-items:center;gap:6px;display:flex}.radio-row input[type=radio]{accent-color:var(--accent);width:15px;height:15px}.ref-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.ref-list{flex-direction:column;gap:8px;display:flex}.ref-row{border:1px solid var(--line);background:var(--surface);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;display:flex}.ref-row .main{flex-direction:column;gap:2px;min-width:0;display:flex}.ref-row .main b{font-size:13.5px}.ref-row .main span{color:var(--ink-dim);font-size:12px}.ref-row .acts{flex:none;gap:2px;display:flex}.chip-email{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:6px;padding:2px 7px;font-family:IBM Plex Mono;font-size:11.5px;display:inline-flex}.searchable-select{position:relative}.searchable-select-menu{z-index:30;background:var(--surface);border:1px solid var(--line);max-height:320px;box-shadow:var(--shadow);transform-origin:top;border-radius:8px;padding:4px;animation:.12s menu-fade-in;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}@keyframes menu-fade-in{0%{opacity:0;transform:translateY(-4px)scaleY(.98)}to{opacity:1;transform:translateY(0)scaleY(1)}}.searchable-select-option{cursor:pointer;border-radius:6px;flex-direction:column;gap:2px;padding:7px 10px;font-size:13px;display:flex}.searchable-select-option:hover,.searchable-select-option.active{background:var(--accent-soft)}.searchable-select-option .sub{color:var(--ink-dim);font-size:11px}.searchable-select-option.muted{color:var(--ink-dim);font-style:italic}.searchable-select-empty,.searchable-select-hint{color:var(--ink-dim);padding:8px 10px;font-size:12px}.email-wrap{flex-wrap:wrap;gap:5px;margin-top:3px;display:flex}.letter-preview-modal{background:var(--surface-2);width:min(900px,94vw);height:min(88vh,920px);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.letter-preview-top{border-bottom:1px solid var(--line);background:var(--surface);flex:none;align-items:center;gap:10px;padding:14px 20px;display:flex}.letter-preview-body{flex:auto;padding:24px;overflow:auto}.letter-preview-bottom{border-top:1px solid var(--line);background:var(--surface);flex:none;justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.docx-preview .docx-wrapper{background:0 0;flex-direction:column;align-items:center;padding:0;display:flex}.docx-preview .docx-wrapper>section.docx{margin-bottom:20px;box-shadow:0 2px 14px #00000040}@media (width<=860px){.shell{flex-direction:column}.sidebar{flex-direction:row;flex:none;align-items:center;width:100%;height:auto;position:relative;overflow-x:auto}.brand{flex:none}nav.mainnav{flex-direction:row}.sidebar-foot{display:none}main.content{padding:18px 16px 40px}.task-row{grid-template-columns:20px 130px 1fr 26px}.task-assignee,.task-dates,.task-progress{display:none}.meta-grid{grid-template-columns:1fr 1fr}}.cal-chips{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.cal-chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-dim);border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.cal-chip.on{background:var(--accent-soft);color:var(--accent-ink);border-color:#0000}.cal-chip.clear{color:var(--brick);margin-left:auto}.cal-chip i{border-radius:50%;width:10px;height:10px;display:inline-block}.cal-chip-label{color:var(--ink-dim);padding:0 4px;font-size:12.5px;font-weight:600}.cal-layout{grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:16px;display:grid}.cal-months{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.cal-month{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:9px 10px 10px}.cal-month header{justify-content:space-between;align-items:baseline;margin-bottom:5px;display:flex}.cal-month h3{font-size:13.5px;font-weight:700}.cal-month header small{color:var(--ink-dim);font:500 10.5px IBM Plex Mono,monospace}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.cal-dow{color:var(--ink-dim);text-align:center;padding-bottom:2px;font-size:9.5px;font-weight:700}.cal-dow.we{color:var(--brick)}.cal-day{height:29px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line-soft);border-radius:5px;align-items:flex-start;padding:1px 0 0 3px;font:600 11.5px IBM Plex Mono,monospace;display:flex;position:relative}.cal-day.vac{background-image:repeating-linear-gradient(135deg, color-mix(in srgb, var(--vc,var(--green)) 30%, transparent) 0 2px, transparent 2px 6px)}.cal-day.empty{visibility:hidden;border-color:#0000}.cal-day.weekend{background:var(--weekend);border-color:var(--line);color:var(--ink-dim)}.cal-day.holiday{background:var(--brick-soft);border-color:var(--brick);color:var(--brick)}.cal-dots{pointer-events:none;flex-wrap:wrap-reverse;gap:1px;display:flex;position:absolute;bottom:2px;left:2px;right:2px}.cal-dot{border-radius:50%;width:4px;height:4px;display:block;box-shadow:0 0 0 .5px #00000040}.cal-flag{background:var(--amber);border-radius:1px;width:8px;height:8px;position:absolute;top:3px;right:3px;transform:rotate(45deg)}.cal-flag.late{background:var(--brick)}.cal-birthday{filter:drop-shadow(0 0 1px #00000059);pointer-events:none;font-size:12px;font-style:normal;line-height:1;position:absolute;top:0;right:1px}.cal-months.dimmed .cal-day:not(.hl):not(.empty){opacity:.32}.cal-day.hl-prj{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cal-day.hl-prj:not(.holiday):not(.weekend){background:var(--accent-soft);color:var(--accent-ink)}.cal-day.hl-vac{border-color:var(--hc);box-shadow:inset 0 0 0 1px var(--hc)}.cal-day.hl-dl{border-color:var(--amber);box-shadow:inset 0 0 0 2px var(--amber)}.cal-day.hl-bd{border-color:var(--violet);box-shadow:inset 0 0 0 2px var(--violet)}.cal-rail{flex-direction:column;gap:12px;display:flex}.cal-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:12px 14px}.cal-panel h2{color:var(--ink-dim);margin-bottom:8px;font-size:13px}.cal-empty{color:var(--ink-dim);padding:4px 0;font-size:12px}.cal-scroll{max-height:300px;margin:0 -6px;padding:0 6px;overflow-y:auto}.cal-ev,.cal-prj{cursor:pointer;border-top:1px solid var(--line-soft);border-radius:8px;position:relative}.cal-ev:first-of-type,.cal-prj:first-of-type{border-top:none}.cal-ev{align-items:flex-start;gap:9px;padding:7px 0;display:flex}.cal-ev .k{flex:none;width:9px;height:9px;margin-top:5px}.cal-ev b{font-size:12.5px;line-height:1.3;display:block}.cal-ev span{color:var(--ink-dim);font-size:11.5px}.cal-ev .left{color:var(--ink-dim);white-space:nowrap;margin-left:auto;font:600 10.5px IBM Plex Mono,monospace}.cal-ev .left.soon{color:var(--brick)}.cal-del{color:var(--ink-dim);cursor:pointer;opacity:0;background:0 0;border:none;padding:0 2px;font-size:11px}.cal-ev:hover .cal-del{opacity:1}.cal-del:hover{color:var(--brick)}.cal-prj{padding:8px 0;display:block}.cal-prj .top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.cal-prj b{font-size:12.5px;line-height:1.3}.cal-prj .dur{color:var(--ink-dim);white-space:nowrap;font:600 10.5px IBM Plex Mono,monospace}.cal-prj .meta{color:var(--ink-dim);margin-top:1px;font-size:11.5px;display:block}.cal-prj .track{background:var(--line-soft);border-radius:3px;height:5px;margin-top:6px;display:block;overflow:hidden}.cal-prj .track i{background:var(--accent);border-radius:3px;height:100%;display:block}.cal-prj.done .track i{background:var(--green)}.cal-prj .st{border-radius:999px;margin-left:6px;padding:1px 6px;font:600 10px Onest,sans-serif}.st.run{background:var(--accent-soft);color:var(--accent-ink)}.st.done{background:var(--green-soft);color:var(--green)}.st.wait{background:var(--amber-soft);color:var(--amber)}.cal-ev input,.cal-prj input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.cal-ev:hover,.cal-prj:hover{background:var(--surface-2)}:is(.cal-ev:has(input:checked),.cal-prj:has(input:checked)){background:var(--accent-soft);box-shadow:0 0 0 6px var(--accent-soft)}:is(.cal-ev:has(input:focus-visible),.cal-prj:has(input:focus-visible)){outline:2px solid var(--accent);outline-offset:2px}.cal-legend{color:var(--ink-dim);flex-wrap:wrap;align-items:center;gap:16px;margin-top:14px;font-size:11.5px;display:flex}.cal-legend span{align-items:center;gap:6px;display:inline-flex}.cal-legend i{border-radius:3px;width:13px;height:13px;display:inline-block;position:relative}.cal-legend i.legend-flag:after{content:"";background:var(--amber);border-radius:1px;width:7px;height:7px;position:absolute;top:3px;left:3px;transform:rotate(45deg)}.cal-legend i.legend-dot:after{content:"";background:var(--green);width:5px;height:5px;box-shadow:8px 0 0 var(--violet);border-radius:50%;position:absolute;bottom:2px;left:2px}.cal-legend i.legend-birthday{width:auto;height:auto;font-size:13px;font-style:normal;line-height:1}.cal-note{color:var(--ink-dim);max-width:900px;margin-top:12px;font-size:12px}@media (width<=1200px){.cal-layout{grid-template-columns:1fr}.cal-months{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.cal-months{grid-template-columns:repeat(2,minmax(0,1fr))}.cal-month header small{display:none}}.cal-panel h2{justify-content:space-between;align-items:center;gap:8px;display:flex}.cal-h2-btn{text-transform:none;letter-spacing:0;border:1px solid var(--line);background:var(--surface);color:var(--accent-ink);cursor:pointer;border-radius:6px;padding:3px 8px;font:600 11px Onest,sans-serif}.cal-h2-btn:hover{border-color:var(--accent)}.cal-h2-btn:disabled{opacity:.5;cursor:not-allowed}.cal-vrow{cursor:pointer;width:100%;color:var(--ink);text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:9px;padding:6px 4px;font-size:12.5px;display:flex}.cal-vrow:hover{background:var(--surface-2)}.cal-vrow i{border-radius:50%;flex:none;width:9px;height:9px}.cal-vrow .n{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.cal-vrow .v{color:var(--ink-dim);white-space:nowrap;font:600 11px IBM Plex Mono,monospace}.cal-vrow .v.over{color:var(--brick)}.vac-window{width:min(760px,94vw);max-width:760px}.vac-list{flex-direction:column;gap:12px;max-height:68vh;margin-top:14px;padding-right:4px;display:flex;overflow-y:auto}.vac-emp{border:1px solid var(--line);background:var(--surface);border-radius:10px}.vac-emp-head{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 12px;display:flex}.vac-dot{border-radius:50%;flex:none;width:10px;height:10px}.vac-name{flex-direction:column;flex:1;min-width:160px;display:flex}.vac-name b{font-size:13.5px}.vac-name span{color:var(--ink-dim);font-size:11.5px}.vac-stat{flex-direction:column;align-items:flex-start;gap:2px;min-width:92px;display:flex}.vac-stat>span{color:var(--ink-dim);font-size:10px;font-weight:700}.vac-stat>b{font:700 16px IBM Plex Mono,monospace}.vac-stat>b.over{color:var(--brick)}.vac-stat>b.zero{color:var(--green)}.vac-days-input{width:72px;padding:4px 8px;font-family:IBM Plex Mono,monospace;font-weight:700}.vac-periods{flex-direction:column;align-items:flex-start;gap:6px;padding:8px 12px 12px;display:flex}.vac-period{background:var(--surface-2);border-radius:8px;align-items:center;gap:14px;width:100%;padding:5px 8px;font-size:13px;display:flex}.vac-period .mono{flex:1}.vac-extra{color:var(--amber);white-space:nowrap;font-size:12px;font-weight:600}.vac-extra-why{color:var(--ink-dim);margin-left:6px;font-weight:400}.vac-period-acts{align-items:center;gap:4px;display:flex}.cal-pickbar{z-index:20;background:var(--accent);color:#fff;box-shadow:var(--shadow);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;display:flex;position:sticky;top:0}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .cal-pickbar{color:#0b1c20}}:root[data-theme=dark] .cal-pickbar{color:#0b1c20}.cal-pickbar span{opacity:.92;font-size:12.5px;display:block}.cal-pickbar span.err{opacity:1;font-weight:700;text-decoration:underline}.cal-pickbar .btn{color:var(--ink)}.cal-day.pickable{cursor:pointer}.cal-day.pickable:hover{outline:2px solid var(--accent);outline-offset:-1px}.cal-day.pick-range{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.cal-day.pick-first{box-shadow:inset 0 0 0 2px var(--accent)}:root[data-palette=topo]{--paper:#eef1f6;--surface:#fff;--surface-2:#f3f6fa;--ink:#16223b;--ink-dim:#5b6b86;--line:#d7dee9;--line-soft:#e6ebf3;--accent:#205fd6;--accent-ink:#0d3585;--accent-soft:#dde8fb;--amber:#b3791d;--amber-soft:#f3e6cc;--brick:#c3452f;--brick-soft:#f7ddd6;--green:#1f8a5c;--green-soft:#d8f0e3;--violet:#6a4fc7;--violet-soft:#e6e0f8;--clay:#a05a2c;--weekend:#e3e8f0;--grid-line:#16223b42;--shadow:0 1px 2px #16223b12, 0 6px 20px -8px #16223b2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-palette=topo][data-theme=dark]{--paper:#0d1420;--surface:#141d2d;--surface-2:#192436;--ink:#e7ecf5;--ink-dim:#8fa0bc;--line:#2a3850;--line-soft:#22304a;--accent:#6f9bf3;--accent-ink:#d8e6fd;--accent-soft:#1e3560;--amber:#e3b25c;--amber-soft:#3a2f18;--brick:#e88972;--brick-soft:#402620;--green:#63c797;--green-soft:#163827;--violet:#b39be8;--violet-soft:#2e2650;--clay:#d99a63;--weekend:#1c2740;--grid-line:#e7ecf53d;--shadow:0 1px 2px #0000004d, 0 6px 24px -8px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-palette=copper]{--paper:#f1efec;--surface:#fff;--surface-2:#f6f4f0;--ink:#23201c;--ink-dim:#6b6357;--line:#ddd7cd;--line-soft:#eae5dd;--accent:#b5652c;--accent-ink:#6e3712;--accent-soft:#f3e0cd;--amber:#a67c1f;--amber-soft:#f0e3c4;--brick:#a8402f;--brick-soft:#f2d9d2;--green:#3f7a5c;--green-soft:#dbeee2;--violet:#705a99;--violet-soft:#e7e1f0;--clay:#8a5636;--weekend:#e6e1d8;--grid-line:#23201c42;--shadow:0 1px 2px #23201c12, 0 6px 20px -8px #23201c2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-palette=copper][data-theme=dark]{--paper:#171512;--surface:#1e1b17;--surface-2:#26221d;--ink:#f0ece5;--ink-dim:#a89e8e;--line:#3a352c;--line-soft:#2c2822;--accent:#e0863f;--accent-ink:#ffe2c2;--accent-soft:#3d2814;--amber:#d9ab54;--amber-soft:#392c14;--brick:#d97a63;--brick-soft:#3a231c;--green:#7cbf9c;--green-soft:#1c3226;--violet:#b39fda;--violet-soft:#322a47;--clay:#c48a5e;--weekend:#29251f;--grid-line:#f0ece53d;--shadow:0 1px 2px #0000004d, 0 6px 24px -8px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-palette=mint]{--paper:#f2f5f1;--surface:#fff;--surface-2:#f6f9f4;--ink:#172621;--ink-dim:#5d7169;--line:#dbe6de;--line-soft:#e9f1ec;--accent:#16947a;--accent-ink:#0a5142;--accent-soft:#d7f0e9;--amber:#b07d1c;--amber-soft:#f2e5c8;--brick:#bf5138;--brick-soft:#f6ddd4;--green:#3e8a4f;--green-soft:#dcf0df;--violet:#7457ad;--violet-soft:#e9e2f5;--clay:#a06a3c;--weekend:#e2ece5;--grid-line:#17262142;--shadow:0 1px 2px #17262112, 0 6px 20px -8px #1726212e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-palette=mint][data-theme=dark]{--paper:#0e1714;--surface:#14201c;--surface-2:#192823;--ink:#e6f1ec;--ink-dim:#8fada2;--line:#29423a;--line-soft:#20342c;--accent:#45c9a8;--accent-ink:#d3f7ec;--accent-soft:#123a30;--amber:#dfb35e;--amber-soft:#392c14;--brick:#e08b71;--brick-soft:#3d2620;--green:#7fcf8f;--green-soft:#17321c;--violet:#b79ce0;--violet-soft:#302749;--clay:#cf9866;--weekend:#17251f;--grid-line:#e6f1ec3d;--shadow:0 1px 2px #0000004d, 0 6px 24px -8px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-palette=dusk]{--paper:#f1f0f7;--surface:#fff;--surface-2:#f6f5fb;--ink:#211d34;--ink-dim:#6a6485;--line:#ddd9ec;--line-soft:#eae7f5;--accent:#5b3fd6;--accent-ink:#33208a;--accent-soft:#e6e0fa;--amber:#b17f1e;--amber-soft:#f2e6c9;--brick:#bc4a3d;--brick-soft:#f5ddd8;--green:#367d63;--green-soft:#dcefe6;--violet:#9552c4;--violet-soft:#efe0f7;--clay:#9c623f;--weekend:#e6e2f0;--grid-line:#211d3442;--shadow:0 1px 2px #211d3412, 0 6px 20px -8px #211d342e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-palette=dusk][data-theme=dark]{--paper:#131022;--surface:#1a1630;--surface-2:#211c3b;--ink:#ece9f7;--ink-dim:#9c93bf;--line:#362e57;--line-soft:#2a2447;--accent:#9d84f2;--accent-ink:#ece5fd;--accent-soft:#2f2657;--amber:#dcae5c;--amber-soft:#392c14;--brick:#e08772;--brick-soft:#3c241f;--green:#74c69e;--green-soft:#163828;--violet:#cf9fe8;--violet-soft:#372a4d;--clay:#cf9166;--weekend:#241f3d;--grid-line:#ece9f73d;--shadow:0 1px 2px #0000004d, 0 6px 24px -8px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-palette=rust]{--paper:#eef0f1;--surface:#fff;--surface-2:#f4f6f7;--ink:#1c2427;--ink-dim:#5c6a70;--line:#d8dfe2;--line-soft:#e7edef;--accent:#b1502b;--accent-ink:#6b2e14;--accent-soft:#f4ddce;--amber:#a97c22;--amber-soft:#f0e4c8;--brick:#a8402e;--brick-soft:#f2d8d0;--green:#397c68;--green-soft:#dbeee6;--violet:#6a5c8f;--violet-soft:#e5e1ef;--clay:#8c5a36;--weekend:#e1e7ea;--grid-line:#1c242742;--shadow:0 1px 2px #1c242712, 0 6px 20px -8px #1c24272e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-palette=rust][data-theme=dark]{--paper:#10161a;--surface:#171f24;--surface-2:#1e272d;--ink:#e8eef0;--ink-dim:#90a0a7;--line:#2d3a40;--line-soft:#232e33;--accent:#e2895a;--accent-ink:#ffe3d1;--accent-soft:#3d2618;--amber:#d9ac5e;--amber-soft:#392c14;--brick:#dd8871;--brick-soft:#3c231c;--green:#7fbfa8;--green-soft:#17322a;--violet:#a99bc9;--violet-soft:#2c2740;--clay:#c99567;--weekend:#1b262b;--grid-line:#e8eef03d;--shadow:0 1px 2px #0000004d, 0 6px 24px -8px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.settings-block{max-width:900px;margin-bottom:30px}.settings-h{color:var(--ink-dim);margin:0 0 6px;font:700 12px Geologica,sans-serif}.palette-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.palette-card{text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--surface);border:1.5px solid var(--line);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:9px;padding:14px 14px 15px;display:flex;position:relative}.palette-card:hover{border-color:var(--ink-dim)}.palette-card .dots{gap:5px;display:flex}.palette-card .dots i{border-radius:50%;width:16px;height:16px;display:block;box-shadow:inset 0 0 0 1px #00000014}.palette-card .name{font:700 13.5px Geologica,sans-serif}.palette-card .desc{color:var(--ink-dim);font-size:11.5px;line-height:1.4}.palette-card .check{color:var(--accent-ink);font:700 11px Onest,sans-serif}.badge.planned{background:var(--surface-2);color:var(--ink-dim)}.badge.blocked{background:var(--violet-soft);color:var(--violet)}.today-stats{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.today-stat{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;flex:160px;align-items:center;gap:10px;padding:10px 14px;display:flex}.today-stat i{border-radius:999px;flex:none;width:9px;height:9px}.today-stat b{font-family:IBM Plex Mono;font-size:18px;display:block}.today-stat b.warn{color:var(--brick)}.today-stat span{color:var(--ink-dim);font-size:11.5px}.today-body{flex-direction:column;gap:14px;margin-bottom:18px;display:flex}.today-section{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.today-section-head{background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--ink-dim);align-items:center;gap:8px;padding:10px 16px;font-size:12.5px;font-weight:700;display:flex}.today-group+.today-group{border-top:1px solid var(--line)}.today-group-head{align-items:baseline;gap:8px;padding:12px 16px 4px;display:flex}.today-group-head b{font-size:13.5px}.today-group-head span{color:var(--ink-dim);font-size:12px}.today-row{border-top:1px solid var(--line-soft);cursor:pointer;align-items:center;gap:10px;padding:9px 16px;display:flex}.today-row:hover{filter:brightness(.98)}.today-row-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:13px;overflow:hidden}.today-tags{flex:none;align-items:center;gap:6px;display:flex}.today-divider{background:var(--line);flex:none;width:1px;height:22px}.today-right{flex:none;justify-content:flex-end;align-items:center;gap:10px;min-width:166px;display:flex}.today-cat-chip{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.today-cat-chip i{border-radius:999px;width:6px;height:6px;display:inline-block}.today-avatar{background:var(--accent-soft);width:24px;height:24px;color:var(--accent-ink);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:10.5px;font-weight:700;display:flex}.today-deadline{text-align:center;white-space:nowrap;border-radius:999px;flex:none;min-width:78px;padding:4px 11px;font-size:11.5px;font-weight:700}.today-deadline.today{color:var(--brick);background:var(--brick-soft)}.today-deadline.overdue{color:#fff;background:var(--brick)}.today-deadline.soon{color:var(--ink-dim);background:var(--surface-2);font-weight:600}.today-deadline.none{color:var(--ink-dim);background:0 0;min-width:0;font-weight:600}.today-gantt-group{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:14px 16px}.today-recur .recur-item-desc{color:var(--ink-dim);font-weight:600}:root[data-palette=geo]{--accent:#0b6e8a;--accent-ink:#064a5e;--amber:#9a6c00;--brick:#cc4a22;--green:#1f7a4d;--violet:#5543a8;--clay:#a0673f}:root[data-palette=geo][data-theme=dark]{--accent:#62d0ec;--accent-ink:#cdf1fa;--amber:#f2c14e;--brick:#ff8a63;--green:#6fe0a4;--violet:#b7a8ff;--clay:#d9a072}:root{--paint:#d7ee3a;--paint-ink:#26310a;--bg-a:#d9e8ee;--bg-b:#eef3ec;--surface:#ffffff8c;--surface-2:#fff6;--surface-solid:#f3f7f8;--glass-hi:#ffffffc7;--glass-modal:#f6fafbd1;--edge:#fff;--field-bg:#ffffffb3;--ink:#0f2233;--ink-dim:#0f2233ad;--line:#0f223324;--line-soft:#0f223314;--grid-line:#0f223324;--weekend:#0f22330d;--shadow:0 24px 50px -26px #0f223359;--contour-op:.2;--orb-op:.5;--orb-2-op:.55}:root[data-theme=dark],:root[data-theme=dark][data-palette]{--bg-a:#06111b;--bg-b:#0b2538;--surface:#ffffff12;--surface-2:#ffffff1a;--surface-solid:#11222f;--glass-hi:#ffffff21;--glass-modal:#11222fcc;--edge:#ffffff38;--field-bg:#ffffff12;--ink:#eef6fa;--ink-dim:#e0eff7ad;--line:#ffffff26;--line-soft:#ffffff17;--grid-line:#ffffff24;--weekend:#ffffff0d;--shadow:0 24px 60px -24px #000000a6;--contour-op:.22;--orb-op:.55;--orb-2-op:.3}:root[data-theme=light][data-palette]{--surface:#ffffff8c;--surface-2:#fff6;--ink:#0f2233;--ink-dim:#0f2233ad;--line:#0f223324;--line-soft:#0f223314;--grid-line:#0f223324;--weekend:#0f22330d;--shadow:0 24px 50px -26px #0f223359}:root,:root[data-theme][data-palette]{--accent-soft:color-mix(in srgb, var(--accent) 18%, transparent);--amber-soft:color-mix(in srgb, var(--amber) 18%, transparent);--brick-soft:color-mix(in srgb, var(--brick) 17%, transparent);--green-soft:color-mix(in srgb, var(--green) 17%, transparent);--violet-soft:color-mix(in srgb, var(--violet) 18%, transparent)}body{background:linear-gradient(160deg, var(--bg-a), var(--bg-b)) fixed;-webkit-font-smoothing:antialiased}.bg{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.orb{opacity:var(--orb-op);will-change:transform;background:radial-gradient(closest-side, var(--oc), transparent);border-radius:50%;position:absolute}.orb.a{--oc:var(--accent);width:46vmax;height:46vmax;animation:26s ease-in-out infinite alternate orb-drift-1;top:-14vmax;left:-12vmax}.orb.b{--oc:var(--paint);width:26vmax;height:26vmax;opacity:var(--orb-2-op);animation:30s ease-in-out infinite alternate orb-drift-2;top:12vmax;right:6vmax}.orb.c{--oc:var(--violet);width:40vmax;height:40vmax;animation:34s ease-in-out infinite alternate orb-drift-3;bottom:-16vmax;right:-14vmax}.orb.d{--oc:var(--brick);opacity:.3;width:20vmax;height:20vmax;animation:38s ease-in-out infinite alternate-reverse orb-drift-2;bottom:-8vmax;left:30vmax}@keyframes orb-drift-1{to{transform:translate(14vmax,10vmax)scale(1.15)}}@keyframes orb-drift-2{to{transform:translate(-16vmax,12vmax)scale(.85)}}@keyframes orb-drift-3{to{transform:translate(-12vmax,-10vmax)scale(1.1)}}.bg svg{width:110%;height:110%;color:var(--accent);opacity:var(--contour-op);position:absolute;inset:-5%}.shell{gap:20px;padding:16px;position:relative}.shell>:not(.bg){z-index:1;position:relative}.shell>.sidebar{position:sticky}main.content{padding:12px 16px 60px 4px}.page-transition{animation:.5s cubic-bezier(.2,.9,.3,1) glass-page-in}@keyframes glass-page-in{0%{transform:translateY(12px)}}.glass,.sidebar,.card,.detail-head,.today-hero,.today-section,.today-stat,.recur-section,.gantt-wrap,.gantt-unscheduled,.ts-scroll,.cal-panel,.cal-month,.login-card,.palette-card,.today-gantt-group,.vac-emp{border:1px solid var(--line);box-shadow:inset 0 1px 0 var(--edge), var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sidebar,.card,.detail-head,.today-hero,.today-section,.recur-section,.gantt-wrap,.ts-scroll,.cal-panel,.login-card{border-radius:22px}.sidebar{border-right:1px solid var(--line);flex:0 0 244px;gap:24px;width:244px;height:calc(100vh - 32px);padding:20px 12px 14px;position:sticky;top:16px}.brand{gap:12px;padding:0 8px}.brand-mark{filter:drop-shadow(0 6px 14px #d7ee3a59);flex:none;animation:5s ease-in-out infinite mark-bob}@keyframes mark-bob{50%{transform:translateY(-3px)rotate(-3deg)}}.brand-text b{letter-spacing:-.02em;font:700 19px Geologica,sans-serif}.brand-text span{color:var(--ink-dim);letter-spacing:0;font-size:12px}nav.mainnav{position:relative}.nav-ind{opacity:0;z-index:0;pointer-events:none;background:var(--glass-hi);border:1px solid var(--edge);height:0;box-shadow:0 8px 22px -10px #00000080, inset 0 1px 0 var(--edge);border-radius:14px;transition:top .45s cubic-bezier(.3,1.4,.5,1),height .3s,opacity .2s;position:absolute;top:0;left:0;right:0}.nav-ind:after{content:"";background:var(--paint);width:3px;box-shadow:0 0 12px var(--paint);border-radius:3px;position:absolute;top:22%;bottom:22%;left:-1px}.navbtn{z-index:1;border:0;border-radius:14px;margin-left:0;padding:11px 14px;font-size:14px;font-weight:500;position:relative;overflow:hidden}.navbtn:hover{color:var(--ink);background:0 0}.navbtn.active{color:var(--ink);background:0 0;border-left:0}.navbtn.active svg{color:var(--paint);opacity:1}:root[data-theme=light] .navbtn.active svg{color:var(--accent)}.sidebar-foot{border-top:1px solid var(--line-soft);padding:12px 6px 4px}.avatar{background:var(--paint);color:var(--paint-ink)}.icon-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:34px;height:34px;color:var(--ink);border-radius:10px;flex:none;place-items:center;transition:transform .25s cubic-bezier(.3,1.6,.5,1);display:grid}.icon-btn:hover{transform:rotate(18deg)scale(1.08)}.sidebar-foot .logout-btn{margin-left:0}.sidebar-foot .who{min-width:0}.sidebar-foot .who b,.sidebar-foot .who span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.topbar h1{letter-spacing:-.015em;font:600 32px Geologica,sans-serif}.topbar .sub{font-size:14px}.section-heading h2,.block-title h2{font-weight:600}.btn{background:var(--surface);border:1px solid var(--line);box-shadow:inset 0 1px 0 var(--edge);border-radius:14px;padding:9px 16px;font-weight:500;transition:transform .2s cubic-bezier(.3,1.6,.5,1),background .2s,box-shadow .2s}.btn:hover:not(:disabled){background:var(--glass-hi);border-color:var(--line);transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg, var(--paint), #a9d92b);color:var(--paint-ink);border-color:#fff6;font-weight:600;box-shadow:0 10px 26px -8px #d7ee3a80,inset 0 1px #fff9}.btn.primary:hover:not(:disabled){filter:none;background:linear-gradient(135deg,#e3f65c,#b6e332);box-shadow:0 14px 32px -8px #d7ee3aa6,inset 0 1px #fff9}.btn.ghost{box-shadow:none;background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--surface)}.rip-host{position:relative;overflow:hidden}.rip{pointer-events:none;background:#ffffff73;border-radius:50%;animation:.7s ease-out forwards glass-rip;position:absolute;transform:scale(0)}.btn.primary .rip{background:#ffffffb3}@keyframes glass-rip{to{opacity:0;transform:scale(1)}}.searchbox{background:var(--surface);border-radius:14px;height:40px;padding:0 14px;transition:box-shadow .25s}.searchbox:focus-within{box-shadow:0 0 0 2px var(--paint), 0 0 24px -4px var(--paint)}.segmented{background:var(--surface);border:1px solid var(--line);border-radius:16px;gap:2px;padding:4px;overflow:visible}.segmented button{background:0 0;border:0;border-radius:12px;padding:7px 14px;font-weight:500;position:relative;overflow:hidden}.segmented button:last-child{border:0}.segmented button.active{background:var(--glass-hi);color:var(--ink);box-shadow:inset 0 1px 0 var(--edge), 0 6px 16px -8px #00000080;border:0}.chip{background:var(--surface);font-weight:500;position:relative;overflow:hidden}.chip:hover{background:var(--glass-hi)}.chip.active{background:var(--paint);color:var(--paint-ink);box-shadow:0 0 18px -4px var(--paint);border-color:#0000}.field-input,.field-textarea,.field-select,.checklist-add-input,.tag-add-input,.cat-new-input,.assignee-select{background:var(--field-bg);color:var(--ink);border-color:var(--line);border-radius:12px}.field-input:focus,.field-textarea:focus,.field-select:focus{border-color:var(--paint);box-shadow:0 0 0 2px color-mix(in srgb, var(--paint) 55%, transparent)}.field-select option,select option{background:var(--surface-solid);color:var(--ink)}.richtext{background:var(--field-bg);border-radius:12px}.richtext-toolbar{background:var(--surface-2)}.field-k{letter-spacing:0;font-size:12px;font-weight:600}.stage-title,.archive-toggle,.gantt-unscheduled-title{letter-spacing:0;font-size:12.5px}.grid-objects{perspective:1200px;gap:20px}.card{gap:0;padding:0;transition:transform .25s ease-out,box-shadow .3s,border-color .2s;overflow:hidden}.card:hover{border-color:var(--line);box-shadow:inset 0 1px 0 var(--edge), 0 30px 60px -22px #0000008c;transform:translateY(-3px)}.card>:not(.card-cover){margin-left:18px;margin-right:18px}.card>.card-top{margin-top:14px}.card>:last-child{margin-bottom:16px}.card>*+*{margin-top:10px}.card-cover{aspect-ratio:auto;background:0 0;border-radius:0;height:120px}.card-cover:after{content:"";pointer-events:none;background:linear-gradient(#0000 45%,#06111b73);position:absolute;inset:0}.contour-cover{position:absolute;inset:0;overflow:hidden}.contour-cover svg{width:100%;height:100%;transition:transform 1.2s;position:absolute;inset:0}.card:hover .contour-cover svg{transform:scale(1.12)rotate(2deg)}.card-title{font-weight:600}.card-foot{border-top:1px solid var(--line-soft)}.card-due-badge{background:var(--paint);color:var(--paint-ink);filter:none;box-shadow:0 0 16px var(--paint);animation:2.2s infinite due-pulse}@keyframes due-pulse{0%{box-shadow:0 0 #d7ee3a8c}70%,to{box-shadow:0 0 0 10px #d7ee3a00}}.badge{background:color-mix(in srgb, currentColor 14%, transparent);border:1px solid}.badge.in_progress,.badge.in_progress_{color:var(--accent)}.badge.in_progress{background:var(--accent-soft);color:var(--accent)}.badge.planned{color:var(--ink-dim);background:var(--surface-2)}.progress-track{background:var(--line-soft);border:0;height:7px}.progress-fill{background:linear-gradient(90deg, var(--accent), var(--paint));box-shadow:0 0 12px color-mix(in srgb, var(--paint) 50%, transparent);transition:width 1s cubic-bezier(.2,.9,.3,1)}.progress-fill.done{background:var(--green);box-shadow:none}.progress-fill.at_risk{background:var(--brick);box-shadow:none}.progress-fill.paused{background:var(--amber);box-shadow:none}.detail-head{padding:14px 18px;position:relative;overflow:hidden}.detail-thumb{border-radius:12px}.detail-thumb .contour-cover svg{transition:none}.detail-title{font-weight:600}.task-row{border-color:var(--line-soft);border-radius:16px;transition:transform .3s cubic-bezier(.3,1.5,.5,1),border-color .2s,background .2s}.task-row:hover{border-color:var(--line);background:var(--glass-hi);transform:translate(3px)}.task-check{border-radius:50%;width:22px;height:22px;transition:transform .3s cubic-bezier(.3,1.8,.5,1),background .25s,box-shadow .3s}.task-check:hover{transform:scale(1.12)}.task-check.done{background:var(--paint);border-color:var(--paint);color:var(--paint-ink);box-shadow:0 0 18px #d7ee3a8c}.task-main .t.is-done{-webkit-text-decoration-color:var(--paint);text-decoration-color:var(--paint)}.recur-item{background:var(--violet-soft);border:1px solid color-mix(in srgb, var(--violet) 30%, transparent)}.recur-item.overdue{border-color:color-mix(in srgb, var(--brick) 45%, transparent)}.recur-section,.today-section{overflow:hidden}.gantt-wrap{padding:28px 18px 20px}.gantt-bar{border:1px solid #ffffff59;border-radius:10px;box-shadow:0 8px 20px -8px #00000080,inset 0 1px #fff6}.gantt-today{background:var(--paint);box-shadow:0 0 14px var(--paint)}.gantt-today-label{color:var(--paint-ink);background:var(--paint);border-radius:6px;padding:1px 8px;top:-22px}.gantt-day.weekend{color:var(--ink-dim);background:var(--weekend)}.gantt-weekend-col{background:var(--weekend)}.gantt-unscheduled-chip{background:var(--surface-2)}.overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#040c1473;animation:.2s glass-overlay-in}@keyframes glass-overlay-in{0%{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:#040c1400}}.drawer,.task-modal,.letter-preview-modal,.vac-window{background:var(--glass-modal);border:1px solid var(--edge);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:inset 0 1px 0 var(--edge), 0 40px 80px -30px #000000b3}.overlay.center .drawer,.task-modal,.letter-preview-modal{border-radius:24px}.overlay.center>*{animation:.45s cubic-bezier(.3,1.5,.5,1) glass-modal-in}@keyframes glass-modal-in{0%{opacity:0;transform:translateY(26px)scale(.92)}to{opacity:1;transform:none}}.task-side-col{background:var(--surface-2)}.status-picker-menu,.searchable-select-menu{background:var(--glass-modal);border:1px solid var(--edge);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:14px}.status-picker-option:hover:not(:disabled),.searchable-select-option:hover,.searchable-select-option.active{background:var(--glass-hi)}.today-hero{flex-direction:column;justify-content:center;min-height:190px;margin-bottom:18px;padding:30px 32px 28px;display:flex;position:relative;overflow:hidden}.hero-rings{width:440px;height:440px;color:var(--accent);opacity:.5;pointer-events:none;position:absolute;top:-80px;right:-60px}.hero-greet{letter-spacing:-.02em;max-width:18ch;font:600 40px/1.1 Geologica,sans-serif;position:relative}.hero-text{max-width:46ch;color:var(--ink-dim);margin:10px 0 0;font-size:15px;position:relative}.hero-text b{color:var(--paint);font-weight:600}:root[data-theme=light] .hero-text b{color:#5b7200}.hero-text b.warn{color:var(--brick)}.today-stat{border-radius:18px}.today-stat i{box-shadow:0 0 10px}.today-section-head{background:var(--surface-2)}.today-row{border-top-color:var(--line-soft)}.today-avatar{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}.today-deadline.overdue{background:var(--brick);color:#fff}.ts-scroll{overflow:auto}table.ts thead th{background:color-mix(in srgb, var(--surface-solid) 92%, var(--accent))}table.ts td.name-cell,table.ts th.name-cell{background:color-mix(in srgb, var(--surface-solid) 92%, var(--accent));box-shadow:none}table.ts thead th.name-cell{z-index:3}table.ts td.daycell{transition:background .2s}table.ts td.daycell:hover{background:var(--glass-hi);box-shadow:inset 0 0 0 2px var(--paint);outline:0}table.ts th.dow.today,table.ts td.daycell.today{box-shadow:inset 2px 0 0 var(--paint), inset -2px 0 0 var(--paint);animation:none}td.code-Я{color:var(--green);background:var(--green-soft)}td.code-В{color:var(--ink-dim)}td.code-К{background:var(--violet-soft);color:var(--violet)}td.code-О{background:var(--amber-soft);color:var(--amber)}table.emp-table thead th{background:var(--surface-2);letter-spacing:0;font-size:12px}table.emp-table tbody tr:hover{background:var(--glass-hi)}.cal-table{background:var(--surface);border-color:var(--line)}.legend i{border-radius:6px}.cal-month{border-radius:18px}.cal-panel h2{letter-spacing:0;font-size:14px}.cal-day.today{border-color:var(--paint);box-shadow:inset 0 0 0 1px var(--paint)}.cal-pickbar{background:var(--paint);color:var(--paint-ink)}.settings-h{letter-spacing:0;font-size:14px}.palette-card{background:var(--surface)}.palette-card.on{border-color:var(--paint);box-shadow:0 0 0 3px color-mix(in srgb, var(--paint) 40%, transparent)}.login-shell{background:0 0;position:relative}.login-shell>:not(.bg){z-index:1;position:relative}.login-card{background:var(--surface)}.login-mark{align-self:center;margin:2px 0 6px}.spark{z-index:90;pointer-events:none;border-radius:50%;width:8px;height:8px;position:fixed}@media (width<=900px){.shell{gap:12px;padding:10px}.sidebar{flex-basis:70px;align-items:center;width:70px;height:calc(100vh - 20px);padding:16px 8px;top:10px}.brand-text,.navbtn .l,.sidebar-foot .who,.sidebar-foot .logout-btn{display:none}.hero-greet{font-size:30px}}.lite .orb,.lite .brand-mark,.lite .card-due-badge{animation:none!important}.lite .glass,.lite .sidebar,.lite .card,.lite .detail-head,.lite .today-hero,.lite .today-section,.lite .today-stat,.lite .recur-section,.lite .gantt-wrap,.lite .gantt-unscheduled,.lite .ts-scroll,.lite .cal-panel,.lite .cal-month,.lite .login-card,.lite .palette-card,.lite .today-gantt-group,.lite .vac-emp,.lite .overlay,.lite .drawer,.lite .task-modal,.lite .letter-preview-modal,.lite .vac-window,.lite .status-picker-menu,.lite .searchable-select-menu{-webkit-backdrop-filter:none;backdrop-filter:none}.lite .glass,.lite .sidebar,.lite .card,.lite .today-hero,.lite .today-section,.lite .ts-scroll,.lite .detail-head,.lite .gantt-wrap{background:color-mix(in srgb, var(--surface-solid) 82%, var(--accent))}.lite .glass:before,.lite .card:before,.lite .sidebar:before,.lite .today-hero:before,.lite .detail-head:before{display:none}@media (prefers-reduced-motion:reduce){.orb,.brand-mark,.card-due-badge{animation:none!important}.nav-ind{transition:none}}.card,.today-hero,.glass,.today-section,.recur-section{position:relative}.sidebar-foot{gap:8px;padding:12px 4px 4px}.sidebar-foot .who{flex:1}.sidebar-foot .icon-btn{width:30px;height:30px}.rv-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rv-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.rv-stat{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px 16px}.rv-stat .n{font-size:28px;font-weight:800;line-height:1}.rv-stat .l{color:var(--ink-dim);margin-top:6px;font-size:12px}.rv-stat.ok .n{color:var(--green)}.rv-stat.warn .n{color:var(--amber)}.rv-stat.bad .n{color:var(--brick)}.rv-stat.acc .n{color:var(--accent)}.rv-bar{background:var(--line-soft);border-radius:99px;height:6px;margin-top:10px;overflow:hidden}.rv-bar i{background:linear-gradient(90deg, var(--accent), var(--green));height:100%;display:block}.rv-finished{background:var(--green-soft);color:var(--green);border-radius:12px;margin-bottom:16px;padding:9px 14px;font-size:13px;font-weight:700}.rv-cols{grid-template-columns:1.5fr 1fr;align-items:start;gap:16px;display:grid}.rv-block{background:var(--surface);border:1px solid var(--line);border-radius:22px;min-width:0;margin-bottom:16px;padding:16px 18px}.rv-block h2{align-items:center;gap:8px;margin:0 0 10px;font-size:14px;display:flex}.rv-block .cnt{color:var(--ink-dim);background:var(--surface-2);border-radius:99px;padding:1px 8px;font-size:11px;font-weight:600}.rv-hint{color:var(--ink-dim);margin:-4px 0 10px;font-size:12px}.rv-empty{color:var(--ink-dim);padding:6px 0;font-size:12.5px}.rv-row{background:var(--surface);border:1px solid var(--line-soft);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px;padding:9px 11px;display:flex}.rv-chk{background:0 0;border:none;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;padding:0;font-size:11px;font-weight:800;display:grid}.rv-chk.done{background:var(--green);color:#06241a}.rv-chk.late{background:var(--amber);color:#2a1d00}.rv-chk.open{border:2px solid var(--amber);cursor:default}button.rv-chk.open{cursor:pointer}button.rv-chk.open:hover{background:var(--amber)}.rv-main{flex:1;min-width:160px}.rv-t{font-size:13px;font-weight:600}.rv-t.strike{color:var(--ink-dim);text-decoration:line-through}.rv-m{color:var(--ink-dim);font-size:11.5px}.rv-time{color:var(--ink-dim);white-space:nowrap;font:600 11px IBM Plex Mono,monospace}.rv-cat{color:#fff;white-space:nowrap;border-radius:99px;padding:1px 9px;font-size:10.5px;font-weight:700}.rv-tag{white-space:nowrap;border-radius:99px;padding:1px 9px;font-size:10.5px;font-weight:700}.rv-tag.late{background:var(--amber-soft);color:var(--amber)}.rv-tag.over{background:var(--brick-soft);color:var(--brick)}.rv-move .rv-sugg{flex-wrap:wrap;align-items:center;gap:6px;width:100%;padding-left:30px;display:flex}.rv-move.keep{opacity:.75}.rv-why{color:var(--violet);font-size:11px}.rv-grow{flex:1}.rv-chip{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);cursor:pointer;border-radius:99px;padding:3px 11px;font-family:inherit;font-size:11.5px;font-weight:600;position:relative}.rv-chip.pri{background:var(--paint,var(--accent));color:var(--paint-ink,#04222c);border-color:#0000}.rv-chip.ghost{color:var(--ink-dim);background:0 0}.rv-chip.ghost.pri{background:var(--paint,var(--accent));color:var(--paint-ink,#04222c)}.rv-datepick input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.rv-bulk{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.rv-day{border-bottom:1px solid var(--line-soft);align-items:baseline;gap:10px;padding:6px 0;font-size:12.5px;display:flex}.rv-day:last-child{border:0}.rv-day b{width:44px;color:var(--accent);flex:none}.rv-day>span:nth-child(2){flex:1;min-width:0}.rv-load{color:var(--ink-dim);text-align:right;margin-left:auto;font-size:11px}.rv-load.hi{color:var(--brick)}.rv-week{gap:6px;height:84px;display:flex}.rv-wcol{color:var(--ink-dim);flex-direction:column;flex:1;align-items:center;gap:4px;font-size:11px;display:flex}.rv-wcol .cur{color:var(--accent);font-weight:700}.rv-wbar-wrap{flex:1;align-items:flex-end;width:100%;display:flex}.rv-wbar{background:var(--green);opacity:.7;border-radius:6px 6px 0 0;width:100%}.rv-wbar.cur{background:var(--accent);opacity:1}.rv-wbar.future{border:1px dashed var(--line);opacity:1;background:0 0}.rv-foot{background:var(--surface);border:1px solid var(--line);border-radius:22px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.rv-error{color:var(--brick)}.rv-legend{color:var(--ink-dim);flex-wrap:wrap;gap:16px;margin-top:10px;font-size:11.5px;display:flex}.rv-legend i{vertical-align:-1px;border-radius:3px;width:14px;height:10px;margin-right:5px;display:inline-block}.rv-legend .lg-bar{background:var(--accent)}.rv-legend .lg-orig{border:1.5px dashed var(--brick);background:color-mix(in srgb, var(--brick) 12%, transparent)}.rv-legend .lg-ext{background:repeating-linear-gradient(135deg, var(--amber) 0 3px, color-mix(in srgb, var(--amber) 55%, transparent) 3px 6px)}.rv-legend .lg-ctx{background:var(--surface-2);border:1px solid var(--line)}.rg{overflow-x:auto}.rg-inner{min-width:max-content;display:grid}.rg-labels>div{border-bottom:1px solid var(--line-soft);flex-direction:column;justify-content:center;height:40px;padding-right:10px;font-size:12.5px;font-weight:600;display:flex;overflow:hidden}.rg-labels .rg-head{height:30px}.rg-labels .rg-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rg-labels small{color:var(--ink-dim);white-space:nowrap;font-size:10.5px;font-weight:500}.rg-labels small b{color:var(--amber)}.rg-labels .ctx{color:var(--ink-dim)}.rg-plot{position:relative}.rg-days{height:30px;display:grid}.rg-days>div{text-align:center;color:var(--ink-dim);border-left:1px solid var(--line-soft);padding-top:4px;font-size:11px;line-height:1.2}.rg-days>div.we{background:var(--weekend)}.rg-days>div.td{color:var(--accent);font-weight:800}.rg-days b{opacity:.7;font-size:10px;font-weight:500;display:block}.rg-bg{pointer-events:none;display:grid;position:absolute;inset:30px 0 0}.rg-bg>div{border-left:1px solid var(--line-soft)}.rg-bg>div.we{background:var(--weekend)}.rg-today{background:var(--accent);opacity:.8;pointer-events:none;z-index:1;width:2px;position:absolute;top:0;bottom:0}.rg-row{border-bottom:1px solid var(--line-soft);height:40px;position:relative}.rg-bar{white-space:nowrap;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:8px;align-items:center;height:24px;padding:0 10px;font-size:11px;font-weight:700;display:flex;position:absolute;top:8px;overflow:hidden}.rg-bar.mv{cursor:grab;background:var(--accent);color:#04222c;box-shadow:0 8px 18px -8px #0009,inset 0 1px #fff6}.rg-bar.mv:active{cursor:grabbing;box-shadow:0 0 0 2px var(--paint,var(--accent));z-index:5}.rg-bar.ctx{background:var(--surface-2);color:var(--ink-dim);border:1px solid var(--line)}.rg-text{z-index:2;pointer-events:none;position:relative}.rg-ext{z-index:1;pointer-events:none;border-left:2px solid var(--amber);background:repeating-linear-gradient(135deg,#f2c14ef2 0 6px,#f2c14e8c 6px 12px);position:absolute;top:0;bottom:0;right:0}.rg-handle{cursor:ew-resize;z-index:3;width:9px;position:absolute;top:0;bottom:0}.rg-handle.l{left:0}.rg-handle.r{right:0}.rg-handle:after{content:"";opacity:0;background:#04222c8c;border-radius:1px;width:2px;position:absolute;top:6px;bottom:6px;left:3px}.rg-bar:hover .rg-handle:after{opacity:1}.rg-orig{border:1.5px dashed var(--brick);background:color-mix(in srgb, var(--brick) 12%, transparent);pointer-events:none;border-radius:8px;height:24px;position:absolute;top:8px}.rg-badge{color:#2a1d00;background:var(--amber);white-space:nowrap;pointer-events:none;border-radius:99px;padding:1px 8px;font-size:10.5px;font-weight:800;position:absolute;top:11px}.rg-badge.ok{background:var(--green-soft);color:var(--green)}@media (width<=900px){.rv-cols{grid-template-columns:1fr}.rv-stats{grid-template-columns:repeat(2,1fr)}}.rv-block,.rv-stat,.rv-foot{-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow)}.lite .rv-block,.lite .rv-stat,.lite .rv-foot{-webkit-backdrop-filter:none}.notify-main{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.notify-on{color:var(--green);font-size:13px;font-weight:700}.notify-list{flex-direction:column;gap:8px;font-size:13px;display:flex}.notify-list label{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.notify-time{width:auto;padding:3px 8px}button.rv-chk.open.close:hover{background:var(--green);border-color:var(--green)}button.rv-chk.open.close:hover:after{content:"✓";color:#06241a}button.rv-chk.done{cursor:pointer}button.rv-chk.done:hover{color:var(--green);box-shadow:inset 0 0 0 2px var(--green);background:0 0}button.rv-chk:disabled{cursor:wait}.rv-chip.ok{color:var(--green);border-color:color-mix(in srgb, var(--green) 50%, transparent)}.rv-chip.ok:hover{background:color-mix(in srgb, var(--green) 14%, transparent)}.rv-task-error{margin:0 0 8px;font-size:13px}.inf-card{background:var(--surface);border:1px solid var(--line);box-shadow:inset 0 1px 0 var(--edge,transparent), var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:20px;margin-bottom:16px;padding:16px 18px;position:relative}.inf-dim{color:var(--ink-dim);font-size:12.5px}.inf-hint{color:var(--ink-dim);margin-top:10px;font-size:12.5px}.inf-error{color:var(--brick);word-break:break-word;margin-top:12px;font-size:12.5px}.inf-h{margin:0;font:600 16px Geologica,sans-serif}.inf-panel-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.inf-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.inf-mini-select{width:auto;min-width:150px;padding-top:6px;padding-bottom:6px;font-size:13px}.inf-kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.inf-kpi{background:var(--surface);border:1px solid var(--line);box-shadow:inset 0 1px 0 var(--edge,transparent);border-radius:18px;min-width:0;padding:12px 16px}.inf-kpi small{color:var(--ink-dim);font-size:12.5px;display:block}.inf-kpi b{font:600 24px/1.25 Geologica,sans-serif;display:block}.inf-kpi i{color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-style:normal;display:block;overflow:hidden}@media (width<=1200px){.inf-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=700px){.inf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.st-ok{color:var(--green)}.st-warn{color:var(--amber)}.st-bad{color:var(--brick)}.inf-pill{white-space:nowrap;background:color-mix(in srgb, currentColor 14%, transparent);border:1px solid;border-radius:99px;align-items:center;gap:6px;padding:1px 10px 1px 8px;font-size:12px;font-weight:500;display:inline-flex}.inf-pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.inf-spd{white-space:nowrap;border-radius:7px;padding:1px 8px;font:600 11.5px Geologica,sans-serif}.inf-spd.s1{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent)}.inf-spd.s25{background:color-mix(in srgb, var(--violet) 20%, transparent);color:var(--violet)}.inf-spd.s10{background:color-mix(in srgb, var(--paint) 30%, transparent);color:var(--ink)}.inf-spd.narrow{background:color-mix(in srgb, var(--brick) 18%, transparent);color:var(--brick)}.inf-bar{background:var(--line-soft);border-radius:99px;height:7px;overflow:hidden}.inf-bar i{background:linear-gradient(90deg, var(--accent), var(--paint));border-radius:99px;height:100%;display:block}.inf-bar.warn i{background:linear-gradient(90deg, var(--amber), var(--brick))}.inf-plan-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.inf-legend{color:var(--ink-dim);flex-wrap:wrap;gap:14px;font-size:12.5px;display:flex}.inf-legend span{align-items:center;gap:6px;display:inline-flex}.inf-legend i{background:currentColor;border-radius:50%;width:9px;height:9px}.inf-legend i.ln{border-radius:2px;width:18px;height:3px}.inf-editbar{border:1px dashed var(--paint);color:var(--ink-dim);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:8px 12px;font-size:13px;display:flex}.inf-editbar b{color:var(--ink)}.inf-unplaced{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.inf-plan-scroll{overflow-x:auto}.inf-plan{-webkit-user-select:none;user-select:none;touch-action:none;width:100%;height:auto;display:block}.inf-plan .grid{opacity:.5;transition:opacity .3s}.inf-plan.editing .grid{opacity:1}.inf-plan .room rect:first-child{fill:color-mix(in srgb, var(--ink) 3%, transparent);stroke:color-mix(in srgb, var(--ink) 55%, transparent);stroke-width:3px}.inf-plan .room.server rect:first-child{fill:color-mix(in srgb, var(--violet) 9%, transparent)}.inf-plan.editing .room{cursor:move}.inf-plan.editing .room:hover rect:first-child{stroke:var(--paint)}.inf-plan .room .resize{fill:var(--paint);stroke:none;cursor:nwse-resize}.inf-plan .room-name{fill:var(--ink);font:600 15px Geologica,sans-serif}.inf-plan .room-sub{fill:var(--ink-dim);font:12px Onest,sans-serif}.inf-plan .desk{cursor:pointer}.inf-plan.editing .desk{cursor:grab}.inf-plan .desk .top{fill:var(--glass-hi,var(--surface));stroke:var(--line);stroke-width:1.2px;transition:stroke .2s,fill .2s}.inf-plan .desk:hover .top{stroke:var(--paint);fill:color-mix(in srgb, var(--paint) 14%, transparent)}.inf-plan .desk .mon{fill:var(--ink-dim)}.inf-plan .desk .main{fill:var(--ink);font:600 9.5px Geologica,sans-serif}.inf-plan .desk .sub{fill:var(--ink-dim);font:8px Onest,sans-serif}.inf-plan .desk .chair{fill:none;stroke:var(--ink-dim);stroke-width:1.4px;opacity:.6}.inf-plan .desk .st-corner{stroke:none}.inf-plan .node{cursor:pointer}.inf-plan .node rect{fill:color-mix(in srgb, var(--accent) 22%, var(--surface-solid,var(--surface)));stroke:var(--accent)}.inf-plan .node.router rect{fill:color-mix(in srgb, var(--paint) 30%, var(--surface-solid,var(--surface)));stroke:var(--paint)}.inf-plan .node text{fill:var(--ink);font:600 10px Geologica,sans-serif}.inf-plan .node.faded{opacity:.45}.inf-plan .cables path{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.inf-panel{width:min(500px,94vw)}.inf-kicker{color:var(--ink-dim);font-size:12.5px}.inf-panel-title{margin:2px 0 8px;font:600 22px Geologica,sans-serif}.inf-person{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:16px;align-items:center;gap:12px;margin:14px 0 6px;padding:12px;display:flex}.inf-person b{font-weight:500;line-height:1.25;display:block}.inf-person small{color:var(--ink-dim);font-size:12px}.inf-switch{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.inf-sec{margin-top:20px}.inf-sec>h3{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim);justify-content:space-between;align-items:center;gap:8px;margin:0 0 8px;font-size:12px;font-weight:600;display:flex}.inf-sec>h3 span{text-transform:none;letter-spacing:0;font-size:12px;font-weight:400}.inf-sec>h3 .inf-mini-select{text-transform:none;letter-spacing:0;min-width:0}.inf-specs{grid-template-columns:100px 1fr;gap:6px 12px;margin:0;font-size:13.5px;display:grid}.inf-specs dt{color:var(--ink-dim)}.inf-specs dd{overflow-wrap:anywhere;min-width:0;margin:0}.inf-issue{border:1px solid color-mix(in srgb, currentColor 40%, transparent);background:color-mix(in srgb, currentColor 9%, transparent);border-radius:14px;align-items:center;gap:8px;margin-bottom:8px;padding:9px 12px;font-size:13.5px;display:flex}.inf-issue span{color:var(--ink)}.inf-issue small{color:var(--ink-dim);font-size:12px;display:block}.inf-issue-add{border:1px dashed var(--line);border-radius:14px;flex-direction:column;gap:8px;padding:10px;display:flex}.inf-log{border-top:1px solid var(--line-soft);grid-template-columns:80px 1fr;gap:10px;padding:6px 0;font-size:13px;display:grid}.inf-log time{color:var(--ink-dim)}.inf-disk{grid-template-columns:1fr 60px;align-items:center;gap:4px 10px;margin-bottom:10px;font-size:13px;display:grid}.inf-disk .r{text-align:right;font-weight:600}.inf-sw-row{border-top:1px solid var(--line-soft);justify-content:space-between;gap:10px;padding:7px 0;font-size:13.5px;display:flex}.inf-sw-row:first-of-type{border-top:0}.inf-ver{font:500 12.5px Geologica,sans-serif}.inf-ver.ok{color:var(--green)}.inf-ver.old{color:var(--amber)}.inf-ver em{color:var(--ink-dim);font-style:normal;font-weight:400}.inf-route{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:12.5px;display:flex}.inf-route .hop{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:9px;padding:3px 9px;font-weight:500}.inf-route .lnk{color:var(--ink-dim)}.inf-route .lnk.neck,.inf-verdict .neck{color:var(--brick);font-weight:600}.inf-verdict{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:14px;margin-top:8px;padding:9px 12px;font-size:13px}.inf-verdict b{font-family:Geologica,sans-serif}.overlay.center .drawer.inf-wide{width:min(720px,94vw)}.inf-form-sec{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim);margin:20px 0 2px;font-size:12px;font-weight:600}.inf-disk-row{grid-template-columns:100px 1fr 1fr 36px;gap:8px;margin:8px 0;display:grid}.inf-ver-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0 10px;display:grid}.inf-soft-rows{grid-template-columns:1fr 110px 1fr 36px;align-items:center;gap:8px;margin-top:8px;display:grid}.inf-soft-rows .field-k{margin:0}.inf-table{border-collapse:collapse;width:100%;font-size:13.5px}.inf-table th{text-align:left;color:var(--ink-dim);white-space:nowrap;padding:12px 12px 8px;font-size:12px;font-weight:500}.inf-table td{border-top:1px solid var(--line-soft);vertical-align:middle;padding:10px 12px}.inf-table tbody tr{cursor:pointer;transition:background .15s}.inf-table tbody tr:hover{background:var(--surface-2)}.inf-table td .sub{color:var(--ink-dim);font-size:12px;display:block}.inf-host{font-family:Geologica,sans-serif;font-weight:600}.inf-mini-issue{color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;max-width:220px;margin-top:2px;font-size:12px;display:block;overflow:hidden}.inf-score{gap:2px;display:inline-flex}.inf-score i{background:var(--line);border-radius:2px;width:5px;height:14px}.inf-score i.f{background:var(--accent)}.inf-score.hi i.f{background:var(--paint)}.inf-matrix th,.inf-matrix td{text-align:center}.inf-matrix th:first-child,.inf-matrix td:first-child{text-align:left}.inf-matrix th .tv{font-size:11.5px;font-weight:400;display:block}.inf-cell{border-radius:8px;min-width:54px;padding:2px 8px;font:500 12px Geologica,sans-serif;display:inline-block}.inf-cell.ok{color:var(--green);background:color-mix(in srgb, var(--green) 12%, transparent)}.inf-cell.old{color:var(--amber);background:color-mix(in srgb, var(--amber) 15%, transparent)}.inf-cell.none{color:var(--ink-dim);opacity:.6}.inf-stor-sum{flex-wrap:wrap;align-items:center;gap:32px;display:flex}.inf-stor-sum small{color:var(--ink-dim);font-size:12.5px;display:block}.inf-stor-sum b{font:600 22px Geologica,sans-serif}.inf-stor-sum .grow{flex:1;min-width:200px}.inf-stor-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.inf-stor{cursor:pointer;margin-bottom:0;transition:background .2s}.inf-stor:hover{background:var(--glass-hi,var(--surface-2))}.inf-stor .top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.inf-stor h3{margin:0;font:600 17px Geologica,sans-serif}.inf-stor .role{color:var(--ink-dim);margin:2px 0 14px;font-size:13px}.inf-stor .cap{justify-content:space-between;align-items:baseline;margin-bottom:7px;display:flex}.inf-stor .cap b{font:600 20px Geologica,sans-serif}.inf-stor .cap span{color:var(--ink-dim);font-size:13px}.inf-stor .inf-specs{margin-top:14px;font-size:13px}.inf-net-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}@media (width<=1100px){.inf-net-grid{grid-template-columns:minmax(0,1fr)}}.inf-topo{width:100%;height:auto;display:block}.inf-topo .tnode{cursor:pointer}.inf-topo .tnode rect{fill:var(--glass-hi,var(--surface));stroke:var(--line);stroke-width:1.2px;transition:stroke .2s}.inf-topo .tnode.node rect{fill:color-mix(in srgb, var(--paint) 16%, var(--surface-solid,var(--surface)))}.inf-topo .tnode.storage rect{fill:color-mix(in srgb, var(--violet) 18%, var(--surface-solid,var(--surface)))}.inf-topo .tnode:hover rect,.inf-topo .tnode.hl rect{stroke:var(--paint);stroke-width:2px}.inf-topo .tnode.sel rect{stroke-width:3px}.inf-topo .tnode text{fill:var(--ink);font:600 11px Geologica,sans-serif}.inf-topo .tnode text.s{fill:var(--ink-dim);font:10px Onest,sans-serif}.inf-topo .edge{fill:none;stroke-width:2px;opacity:.55;transition:opacity .2s}.inf-topo .hl .edge{opacity:1;stroke-width:3.5px}.inf-topo.has-hl g:not(.hl)>.edge{opacity:.18}.inf-topo .elabel{font:600 10px Geologica,sans-serif}.inf-topo .zone-t{fill:var(--ink-dim);font:12px Onest,sans-serif}.inf-node-row{border-top:1px solid var(--line-soft);cursor:pointer;justify-content:space-between;gap:10px;padding:9px 0;font-size:13px;display:flex}.inf-node-row:first-of-type{border-top:0}.inf-node-row:hover b{color:var(--accent)}.inf-plan .opening polygon{fill:var(--surface-solid,var(--surface));stroke:none}.inf-plan .opening.window polygon{fill:color-mix(in srgb, var(--accent) 35%, var(--surface-solid,var(--surface)));stroke:var(--accent);stroke-width:1px}.inf-plan .opening.window line{stroke:var(--accent);stroke-width:1px}.inf-plan .opening.door path{fill:none;stroke:color-mix(in srgb, var(--ink) 55%, transparent);stroke-width:1.2px;stroke-dasharray:3 2}.inf-plan.editing .opening{cursor:ew-resize}.inf-plan.editing .opening:hover polygon{stroke:var(--paint);stroke-width:2px}.inf-plan.placing,.inf-plan.placing *{cursor:crosshair!important}.inf-plan .desk .mon.stereo{fill:var(--violet)}.inf-plan .rot-handle{cursor:pointer}.inf-plan .rot-handle circle{fill:var(--paint);stroke:var(--surface-solid,var(--surface));stroke-width:1.5px}.inf-plan .rot-handle text{fill:var(--paint-ink,#26310a);pointer-events:none;font:700 11px Onest,sans-serif}.inf-open-rows{grid-template-columns:1fr 1fr 90px 90px 40px 36px;align-items:center;gap:8px;margin-top:8px;display:grid}.inf-open-rows .field-k{margin:0}.inf-check{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.inf-contour{border:1px solid;border-radius:99px;margin-left:6px;padding:1px 10px;font-size:12px;font-weight:500;display:inline-flex}.inf-contour.open,.inf-contour-badge.open{color:var(--accent)}.inf-contour.closed,.inf-contour-badge.closed{color:var(--clay)}.inf-contour-badge{background:color-mix(in srgb, currentColor 14%, transparent);vertical-align:1px;border:1px solid;border-radius:5px;place-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 4px;font:700 10.5px Geologica,sans-serif;display:inline-grid}.inf-plan .desk.ct-open .top{stroke:var(--accent);stroke-width:2px}.inf-plan .desk.ct-closed .top{stroke:var(--clay);stroke-width:2px}.inf-plan .desk.ct-mixed .top{stroke:var(--violet);stroke-width:2px;stroke-dasharray:6 3}.inf-plan .desk.ct-open.ct-fill .top{fill:color-mix(in srgb, var(--accent) 28%, transparent)}.inf-plan .desk.ct-closed.ct-fill .top{fill:color-mix(in srgb, var(--clay) 30%, transparent)}.inf-plan .desk.ct-mixed.ct-fill .top{fill:color-mix(in srgb, var(--violet) 28%, transparent)}.inf-plan .desk.ct-none.ct-fill .top{stroke-dasharray:4 3}.inf-topo .tnode.ct-open rect{stroke:var(--accent);stroke-width:1.8px}.inf-topo .tnode.ct-closed rect{stroke:var(--clay);stroke-width:1.8px;stroke-dasharray:5 3}.inf-agent-how{color:var(--ink-dim);background:var(--surface-2);border:1px solid var(--line-soft);border-radius:14px;padding:12px 14px;font-size:13px;line-height:1.5}.inf-agent-how b{color:var(--ink)}.inf-agent-how a.btn{color:var(--ink);text-decoration:none}.inf-drop{text-align:center;border:2px dashed var(--line);color:var(--ink-dim);cursor:pointer;border-radius:16px;margin:12px 0;padding:22px;font-size:13.5px;transition:border-color .2s,background .2s;display:block}.inf-drop:hover,.inf-drop.over{border-color:var(--paint);background:color-mix(in srgb, var(--paint) 8%, transparent)}.inf-agent-row{border:1px solid var(--line);border-radius:14px;margin-bottom:8px;padding:10px 12px}.inf-agent-row.off{opacity:.55}.inf-agent-row.err{color:var(--brick);font-size:13px}.inf-agent-row .head{grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;display:grid}.inf-agent-diff{border-top:1px solid var(--line-soft);margin-top:10px;padding-top:8px;font-size:13px}.inf-agent-diff .ln{justify-content:space-between;gap:12px;padding:4px 0;display:flex}.inf-agent-diff .ln>span:first-child,.inf-agent-diff s{color:var(--ink-dim)}.inf-agent-trouble{margin-top:8px}.inf-agent-trouble summary{cursor:pointer;color:var(--ink);font-weight:500}.inf-legend i.box{background:0 0;border:2px solid;border-radius:3px;width:13px;height:9px}.inf-legend i.corner{clip-path:polygon(100% 0,100% 100%,0 100%);border-radius:0 0 4px;width:9px;height:9px}
