@font-face{font-family:Manrope;src:url(/fonts/Manrope.woff2) format("woff2-variations");font-weight:200 800;font-style:normal;font-display:swap}@font-face{font-family:Playfair Display;src:url(/fonts/PlayfairDisplay.woff2) format("woff2-variations");font-weight:400 900;font-style:normal;font-display:swap}@font-face{font-family:Playfair Display;src:url(/fonts/PlayfairDisplay-Italic.woff2) format("woff2-variations");font-weight:400 900;font-style:italic;font-display:swap}:root{--bg: #F6F8EE;--surface: #FFFFFF;--surface2: #EEF1E1;--text: #17170F;--text2: #4D4B4A;--text3: #83827A;--lime: #A6CC1E;--lime-deep: #8FB400;--lime-text: #5C7A00;--burg: #B23A2C;--line: rgba(23, 23, 15, .1);--line2: rgba(23, 23, 15, .05);--shadow-sm: 0 18px 44px -30px rgba(25, 25, 16, .3);--series-1: #2a78d6;--grid: #e1e0d9;--axis: #c3c2b7;--good: #0ca30c;--good-text: #006300;--sans: "Manrope", system-ui, sans-serif;--serif: "Playfair Display", Georgia, serif}*{box-sizing:border-box;margin:0}body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}button{font:inherit;cursor:pointer}table{border-collapse:collapse;width:100%}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:40px;width:100%;max-width:400px;box-shadow:var(--shadow-sm)}.wordmark{font-family:var(--serif);font-weight:600;font-size:28px;letter-spacing:-.02em}.wordmark em{font-style:italic;color:var(--lime-text)}.login-sub{color:var(--text3);margin:4px 0 28px;font-size:14px}.field{display:block;margin-bottom:16px}.field span{display:block;font-size:13px;font-weight:600;color:var(--text2);margin-bottom:6px}.field input{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;background:var(--bg);color:var(--text)}.field input:focus{outline:2px solid var(--lime);border-color:transparent}.btn-primary{width:100%;padding:12px;border:none;border-radius:10px;margin-top:8px;background:var(--text);color:#fefff4;font-weight:700}.btn-primary:hover{background:#000}.login-err{color:var(--burg);font-size:13px;margin-top:12px}.login-hint{margin-top:20px;padding-top:16px;border-top:1px solid var(--line2);font-size:12px;color:var(--text3)}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column;gap:4px}.sidebar .wordmark{font-size:22px;padding:0 10px 20px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:none;background:none;text-align:left;width:100%;color:var(--text2);font-weight:600;font-size:14px}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:var(--text);color:#fefff4}.nav-item .soon{margin-left:auto;font-size:10px;font-weight:700;color:var(--text3);background:var(--surface2);border-radius:99px;padding:2px 8px}.nav-item.active .soon{background:#ffffff2e;color:#fefff4}.sidebar-foot{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--line2);font-size:13px}.sidebar-foot .who{font-weight:700}.sidebar-foot .role{color:var(--text3);font-size:12px}.btn-ghost{margin-top:10px;background:none;border:1px solid var(--line);border-radius:8px;padding:6px 12px;font-size:13px;color:var(--text2)}.btn-ghost:hover{border-color:var(--text);color:var(--text)}.main{padding:32px 40px 60px;max-width:1240px;min-width:0}.page-head{display:flex;align-items:baseline;gap:14px;margin-bottom:6px}.page-head h1{font-family:var(--serif);font-weight:600;font-size:32px;letter-spacing:-.02em}.badge-demo{font-size:11px;font-weight:800;letter-spacing:.08em;color:#7a5c00;background:#faebb4;border-radius:99px;padding:4px 12px}.page-sub{color:var(--text3);font-size:14px;margin-bottom:28px}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.tile .label{font-size:13px;font-weight:600;color:var(--text2)}.tile .value{font-size:34px;font-weight:800;letter-spacing:-.02em;margin:4px 0 2px}.tile .delta{font-size:13px;font-weight:600}.delta.up{color:var(--good-text)}.delta.down{color:var(--burg)}.delta.flat{color:var(--text3)}.grid-2{display:grid;grid-template-columns:3fr 2fr;gap:16px;margin-bottom:24px}.grid-2tables{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px;min-width:0}.card h2{font-size:16px;font-weight:800;margin-bottom:4px}.card .card-sub{font-size:13px;color:var(--text3);margin-bottom:16px}th{text-align:left;font-size:12px;font-weight:700;color:var(--text3);padding:8px 10px;border-bottom:1px solid var(--line)}th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}td{padding:9px 10px;border-bottom:1px solid var(--line2);font-size:14px}tr:last-child td{border-bottom:none}.channels{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.channel{border:1px solid var(--line);border-radius:12px;padding:14px 16px}.channel .ch-name{font-weight:700;font-size:14px}.channel .ch-note{font-size:12px;color:var(--text3);margin-top:2px}.ch-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;margin-top:8px}.ch-status.on{color:var(--good-text)}.ch-status.off{color:var(--text3)}.dot{width:8px;height:8px;border-radius:99px}.on .dot{background:var(--good)}.off .dot{background:var(--axis)}.chart-tip{position:absolute;pointer-events:none;background:var(--text);color:#fefff4;font-size:12px;padding:6px 10px;border-radius:8px;white-space:nowrap;transform:translate(-50%,-110%);z-index:5}.chart-tip b{font-weight:800}.hbar-row{display:grid;grid-template-columns:160px 1fr 48px;gap:10px;align-items:center;margin-bottom:10px;font-size:13px}.hbar-name{color:var(--text2);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar-track{height:18px;border-radius:4px;background:var(--line2);position:relative}.hbar-fill{position:absolute;inset:0 auto 0 0;border-radius:4px;background:var(--series-1)}.hbar-val{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.task-form{display:flex;flex-wrap:wrap;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:14px;align-items:center}.task-form .tf-title{flex:1 1 240px}.task-form select{flex:0 1 180px}.task-form .dp{flex:0 1 140px}.task-form input,.task-form select{padding:10px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;background:var(--bg);color:var(--text);min-width:0}.task-form input:focus,.task-form select:focus{outline:2px solid var(--lime);border-color:transparent}.tf-btn{width:auto;margin:0;padding:10px 18px}.board-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.search{padding:9px 14px;border:1px solid var(--line);border-radius:99px;font:inherit;font-size:14px;background:var(--surface);color:var(--text);min-width:220px}.search:focus{outline:2px solid var(--lime);border-color:transparent}.hint{font-size:13px;color:var(--text3);margin-bottom:12px}.board{display:flex;gap:16px;align-items:flex-start;overflow-x:auto;padding-bottom:12px}.kanban-col{background:var(--surface2);border-radius:14px;padding:12px;flex:0 0 286px;touch-action:manipulation}.col-dragging{opacity:.4}.col-overlay{box-shadow:var(--shadow);transform:rotate(2deg)}.kanban-body{min-height:40px}.kanban-head{font-size:13px;font-weight:800;padding:4px 6px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:grab}.col-title{cursor:pointer}.col-rename{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font:inherit;font-weight:700;width:100%;background:var(--surface)}.kanban-count{color:var(--text3);font-weight:700;display:inline-flex;align-items:center;gap:6px}.col-del{border:none;background:none;color:var(--text3);font-size:16px;line-height:1;padding:0 2px}.col-del:hover{color:var(--burg)}.col-add{background:none;border:2px dashed var(--line);min-height:52px;display:grid;align-items:start}.col-add-btn{border:none;background:none;color:var(--text3);font-weight:700;font-size:13px;padding:8px;text-align:left}.col-add-btn:hover{color:var(--text)}.kanban-empty{color:var(--text3);font-size:13px;text-align:center;padding:18px 0}.task{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:manipulation}.task:hover{border-color:var(--text3)}.task-ghost{opacity:.35}.task-overlay{cursor:grabbing;box-shadow:var(--shadow);transform:rotate(3deg);width:262px}.task-title{font-weight:700;font-size:14px}.task-dates{font-size:12px;color:var(--text2);margin-top:5px}.due-overdue{color:var(--burg);font-weight:700}.task-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;min-height:22px}.task-badges{display:flex;gap:8px;font-size:12px;color:var(--text3)}.badge{display:inline-flex;align-items:center;gap:3px}.badge-done{color:var(--good-text);font-weight:700}.avatar{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:99px;font-size:11px;font-weight:800;flex:none}.avatar-sm{width:22px;height:22px;font-size:10px}.btn-mini{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:5px 12px;font-size:12px;font-weight:700;color:var(--text2)}.btn-mini:hover{border-color:var(--text);color:var(--text)}.btn-danger:hover{border-color:var(--burg);color:var(--burg)}.danger-armed{border-color:var(--burg);color:var(--burg);font-weight:800}.pr-pill{display:inline-block;border-radius:99px;padding:3px 12px;font-size:12px;font-weight:700;border:1px solid transparent;background:var(--surface2);color:var(--text2)}.pr-sm{padding:1px 9px;font-size:11px;margin-bottom:6px}.pr-urgent{background:#f7e1dd;color:#8f2419}.pr-high{background:#f7eccf;color:#7a5200}.pr-normal{background:var(--surface2);color:var(--text2)}.pr-low{background:#e2ebf3;color:#33556e}.pr-picker{display:flex;gap:8px;flex-wrap:wrap}.pr-picker .pr-pill{cursor:pointer;opacity:.55}.pr-picker .pr-on{opacity:1;border-color:currentColor}.pr-filter{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.chip{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:5px 14px;font-size:12px;font-weight:700;color:var(--text2)}.chip:hover{border-color:var(--text3)}.chip-on{background:var(--text);color:#fefff4;border-color:var(--text)}.dp{position:relative}.dp-btn{display:inline-flex;align-items:center;gap:7px;padding:10px 12px;width:100%;border:1px solid var(--line);border-radius:9px;background:var(--bg);font:inherit;font-size:14px;color:var(--text)}.dp-empty{color:var(--text3)}.dp-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.dp-pop{position:absolute;z-index:50;top:calc(100% + 6px);left:0;width:264px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:var(--shadow-sm)}.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dp-title{font-weight:800;font-size:14px}.dp-nav{border:none;background:var(--surface2);border-radius:8px;width:28px;height:28px;font-size:16px}.dp-nav:hover{background:var(--line)}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dp-wd{text-align:center;font-size:11px;font-weight:700;color:var(--text3);padding:4px 0}.dp-day{border:none;background:none;border-radius:8px;height:30px;font-size:13px;font-weight:600;color:var(--text)}.dp-day:hover{background:var(--surface2)}.dp-other{color:var(--text3);opacity:.5}.dp-today{box-shadow:inset 0 0 0 1px var(--lime-deep)}.dp-sel{background:var(--text);color:#fefff4}.dp-sel:hover{background:#000}.dp-foot{display:flex;justify-content:space-between;margin-top:8px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#17170f73;display:grid;place-items:center;padding:20px}.modal{background:var(--surface);border-radius:18px;padding:26px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-sm)}.m-title{width:100%;font:inherit;font-size:18px;font-weight:800;border:none;border-bottom:2px solid var(--line);padding:4px 2px 8px;margin-bottom:18px;background:none;color:var(--text)}.m-title:focus{outline:none;border-color:var(--lime)}.m-title-ro{font-size:18px;font-weight:800;padding-bottom:8px;margin-bottom:18px;border-bottom:2px solid var(--line)}.m-row{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:center;margin-bottom:14px}.m-label{font-size:12px;font-weight:700;color:var(--text3)}.m-row select,.m-row textarea{padding:9px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:14px;background:var(--bg);color:var(--text);width:100%}.m-row textarea{resize:vertical}.m-dates{display:flex;align-items:center;gap:8px}.m-dates .dp{flex:1}.m-actions{display:flex;gap:10px;margin-top:20px;align-items:center;flex-wrap:wrap}.modal-wide{max-width:620px}.m-block{border-top:1px solid var(--line2);padding-top:16px;margin-top:18px}.m-block-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:800;margin-bottom:10px}.chk-count{font-size:12px;color:var(--text3);font-weight:700}.m-empty{font-size:13px;color:var(--text3)}.chk-bar{height:6px;border-radius:99px;background:var(--surface2);margin-bottom:12px;overflow:hidden}.chk-bar-fill{height:100%;background:var(--lime-deep);border-radius:99px;transition:width .2s}.chk-item{display:flex;align-items:flex-start;gap:8px;padding:4px 0}.chk-item label{display:flex;align-items:flex-start;gap:9px;flex:1;font-size:14px;cursor:pointer}.chk-item input{margin-top:3px;accent-color:var(--lime-deep);width:16px;height:16px}.chk-done{color:var(--text3);text-decoration:line-through}.chk-del{border:none;background:none;color:var(--text3);font-size:16px;line-height:1;padding:0 4px}.chk-del:hover{color:var(--burg)}.chk-add{display:flex;gap:8px;margin-top:8px}.chk-add input{flex:1;padding:8px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:14px;background:var(--bg);color:var(--text)}.cmt{display:flex;gap:10px;margin-bottom:12px}.cmt-body{flex:1;min-width:0}.cmt-head{display:flex;align-items:center;gap:8px;font-size:12px}.cmt-text{font-size:14px;margin-top:2px;white-space:pre-wrap;word-break:break-word}.cmt-add{display:flex;gap:8px;align-items:flex-start;margin-top:12px}.cmt-add textarea{flex:1;padding:9px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:14px;background:var(--bg);color:var(--text);resize:vertical}.ppl-add{display:inline-flex;gap:8px;align-items:center}.ppl-add input{padding:9px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;background:var(--bg)}.team-section{margin-bottom:16px}.team-section-head{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:12px}.person{display:flex;align-items:center;gap:13px;text-align:left;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:12px 14px;font:inherit;color:var(--text);min-width:0;transition:border-color .15s,transform .15s}.person:hover{border-color:var(--text3);transform:translateY(-2px)}.person-off{opacity:.6}.person-main{min-width:0;flex:1}.person-name{font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-position{font-size:13px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.st-badge{font-size:11px;font-weight:700;border-radius:99px;padding:2px 9px;background:var(--surface2);color:var(--text2)}.st-vacation{background:#e2ebf3;color:#33556e}.st-inactive{background:var(--surface2);color:var(--text3)}.st-overdue{background:#f7e1dd;color:#8f2419}.person-note{font-size:12px;color:var(--text3);margin-top:4px}.avatar-photo{object-fit:cover}.pm-top{display:flex;gap:20px;align-items:flex-start;margin-bottom:16px}.pm-photo{display:grid;gap:8px;justify-items:center;flex:none}.pm-photo-actions{display:flex;flex-direction:column;gap:6px}.pm-ident{flex:1;min-width:0}.pm-name{margin-bottom:8px}.pm-position{margin-bottom:10px}.pm-position-ro{font-size:14px;color:var(--text2);margin-bottom:10px}.pm-stats{display:flex;gap:16px;font-size:13px;color:var(--text2);flex-wrap:wrap}.pm-stats b{font-size:16px;font-weight:800;color:var(--text)}.pm-stats .due-overdue b{color:var(--burg)}.pm-actions{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:4px;border-bottom:1px solid var(--line2)}.pm-actions a.btn-mini{text-decoration:none;display:inline-flex;align-items:center}@media (max-width: 640px){.pm-top{flex-direction:column;align-items:stretch}}.m-input{padding:9px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:14px;background:var(--bg);color:var(--text);width:100%}.m-input:focus{outline:2px solid var(--lime);border-color:transparent}.acc-row{display:grid;grid-template-columns:1fr auto auto;gap:24px;align-items:center;margin-bottom:12px}.acc-service{font-weight:800;font-size:15px}.acc-url{font-size:13px;color:var(--lime-text)}.acc-cred{display:grid;gap:6px}.acc-line{display:flex;align-items:center;gap:8px;font-size:13px}.acc-line .m-label{width:46px}.acc-val{font-family:var(--mono, ui-monospace, monospace);min-width:120px}.acc-side{display:grid;gap:8px;justify-items:end}@media (max-width: 1000px){.acc-row{grid-template-columns:1fr;gap:10px}.acc-side{justify-items:start}}.warn-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#faebb4;color:#7a5c00;border-radius:12px;padding:12px 18px;font-size:13px;font-weight:700;margin-bottom:20px}.warn-bar .btn-mini{background:#fff9;border-color:#7a5c004d;color:#7a5c00}.toast{background:#f7e1dd;color:#8f2419;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:700;margin-bottom:14px}.stub{display:grid;place-items:center;min-height:50vh;text-align:center;color:var(--text3)}.stub h2{font-family:var(--serif);font-size:26px;color:var(--text2);margin-bottom:8px}@media (max-width: 1000px){.shell{grid-template-columns:1fr}.sidebar{flex-direction:row;flex-wrap:wrap;align-items:center;border-right:none;border-bottom:1px solid var(--line)}.main{padding:20px}.tiles,.grid-2,.grid-2tables,.channels{grid-template-columns:1fr}.kanban-col{flex-basis:250px}}
