:root{color-scheme:light;--bg:#f3f6f9;--panel:#fbfcfd;--sunk:#e8eef3;--line:#d3dbe3;--fg:#2b2c2f;--muted:#5f6670;--pri:#0073b9;--pri-ink:#00456f;--pri-soft:#e1eef7;--sky:#66abd5;--green:#009640;--green-soft:#ddf1e5;--qc:#0073b9;--qc-soft:#e1eef7;--cr:#c8125c;--cr-soft:#fbe2ec;--warn:#9a5b00;--warn-soft:#fbefd9;--bad:#b3261e;--bad-soft:#fbe5e3;--nic:#5b4db0;--nic-soft:#ebe8fa;--studio:#00838a;--studio-soft:#dcf2f2;--on-pri:#ffffff;--f-ui:"Apertura","Helvetica Neue",Helvetica,Arial,sans-serif;--r:10px;--shadow:0 10px 30px rgba(0,40,70,.18)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0e1720;--panel:#15212c;--sunk:#1c2b38;--line:#2c3d4c;--fg:#e9eef3;--muted:#a3afbb;--pri:#5aaee0;--pri-ink:#a9d3ef;--pri-soft:#123247;--green:#4fc883;--green-soft:#123825;--qc:#5aaee0;--qc-soft:#123247;--cr:#f27aa8;--cr-soft:#47182c;--warn:#f0b65e;--warn-soft:#3a2a10;--bad:#f28b82;--bad-soft:#47201d;--nic:#b6a8ff;--nic-soft:#2b2652;--studio:#5fd3d6;--studio-soft:#103a3c;--on-pri:#08131c;--shadow:0 10px 30px rgba(0,0,0,.5)}}:root[data-theme=dark]{color-scheme:dark;--bg:#0e1720;--panel:#15212c;--sunk:#1c2b38;--line:#2c3d4c;--fg:#e9eef3;--muted:#a3afbb;--pri:#5aaee0;--pri-ink:#a9d3ef;--pri-soft:#123247;--green:#4fc883;--green-soft:#123825;--qc:#5aaee0;--qc-soft:#123247;--cr:#f27aa8;--cr-soft:#47182c;--warn:#f0b65e;--warn-soft:#3a2a10;--bad:#f28b82;--bad-soft:#47201d;--nic:#b6a8ff;--nic-soft:#2b2652;--studio:#5fd3d6;--studio-soft:#103a3c;--on-pri:#08131c;--shadow:0 10px 30px rgba(0,0,0,.5)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-ui);line-height:1.5}a{color:var(--pri)}.shell{max-width:1200px;margin:0 auto;padding:24px 16px 48px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:3px solid var(--pri);padding-bottom:12px;margin-bottom:24px}.topbar h1{margin:0;font-size:1.5rem;color:var(--pri-ink)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:16px}.card h2{margin-top:0;font-size:1.1rem;color:var(--pri-ink)}.muted{color:var(--muted)}.error{color:var(--bad);background:var(--bad-soft);padding:8px 12px;border-radius:8px}.chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.85rem;font-weight:600}.chip.qc{background:var(--qc-soft);color:var(--qc)}.chip.cr{background:var(--cr-soft);color:var(--cr)}.button,button{font:inherit;font-weight:600;border:0;border-radius:8px;padding:10px 18px;cursor:pointer;background:var(--pri);color:var(--on-pri)}button.secondary{background:transparent;color:var(--pri);border:1px solid var(--pri)}a:focus-visible,button:focus-visible{outline:3px solid var(--sky);outline-offset:2px}ul.plain{list-style:none;padding:0;margin:0}ul.plain li{padding:8px 0;border-bottom:1px solid var(--line)}ul.plain li:last-child{border-bottom:0}.app-head{gap:20px;flex-wrap:wrap;padding:4px 0 16px;border-bottom:3px solid var(--pri)}.app-head,.brand{display:flex;align-items:center}.brand{gap:10px;padding-right:20px;border-right:1px solid var(--line)}.brand-mark{width:38px;height:38px;border-radius:10px;background:var(--pri);color:var(--on-pri);display:grid;place-items:center;font-weight:800;letter-spacing:.5px}.brand-name{font-weight:700;color:var(--pri);font-size:1.15rem}.app-title h1{margin:0;font-size:1.45rem;color:var(--pri-ink)}.app-title p{margin:2px 0 0;color:var(--muted);font-size:.92rem}.app-user{margin-left:auto;display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;background:var(--pri-soft);color:var(--pri);display:grid;place-items:center;font-weight:700;font-size:.85rem}.avatar.sm{width:26px;height:26px;font-size:.72rem}.role-pill{font-size:.8rem;color:var(--pri-ink);background:var(--pri-soft);padding:3px 10px;border-radius:999px;font-weight:600}.tabs{display:flex;flex-wrap:wrap;gap:2px 4px;margin:16px 0 22px;border-bottom:1px solid var(--line)}.tabs a{padding:10px 14px;text-decoration:none;color:var(--muted);font-weight:600;border-bottom:3px solid transparent;white-space:nowrap;display:flex;align-items:center;gap:6px}.tabs a.active,.tabs a:hover{color:var(--pri)}.tabs a.active{border-bottom-color:var(--pri)}.badge{background:var(--sunk);color:var(--fg);border-radius:999px;font-size:.75rem;padding:1px 8px;font-weight:700}.badge.alert{background:var(--bad-soft);color:var(--bad)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;text-decoration:none;color:inherit;display:block}a.kpi:hover{border-color:var(--pri)}.kpi .n{font-size:2rem;font-weight:800;color:var(--pri-ink);line-height:1.1}.kpi .n small{font-size:.95rem;font-weight:600;color:var(--muted);margin-left:3px}.kpi .l{font-weight:600;font-size:.9rem;margin-top:4px}.kpi .s{color:var(--muted);font-size:.8rem}.kpi.warn .n{color:var(--bad)}.kpi.good .n{color:var(--green)}.grid2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:16px}.grid2,.grid3{display:grid;gap:16px}.grid3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:16px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}.card-head h2{margin:0}.hint{font-size:.85rem}.empty,.hint{color:var(--muted)}.empty{font-style:italic;padding:8px 0}.row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.row .grow{flex:1 1;min-width:0}.row .title{font-weight:600}.row .meta{color:var(--muted);font-size:.85rem}.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--sunk);color:var(--fg);white-space:nowrap}.tag .dot{width:8px;height:8px;border-radius:50%}.tag.pending{background:var(--warn-soft);color:var(--warn)}.tag.approved,.tag.done{background:var(--green-soft);color:var(--green)}.tag.overdue,.tag.rejected{background:var(--bad-soft);color:var(--bad)}.tag.cancelled{background:var(--sunk);color:var(--muted);text-decoration:line-through}.tag.review{background:var(--nic-soft);color:var(--nic)}.tag.progress{background:var(--pri-soft);color:var(--pri)}.tag.studio{background:var(--studio-soft);color:var(--studio)}.bar{height:8px;background:var(--sunk);overflow:hidden}.bar,.bar>span{border-radius:999px}.bar>span{display:block;height:100%;background:var(--pri)}.bar.green>span{background:var(--green)}.bar.warn>span{background:var(--warn)}form.inline{display:inline}.actions{display:flex;gap:6px;flex-wrap:wrap}button.sm{padding:6px 12px;font-size:.85rem}button.ok{background:var(--green);color:#fff}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}button.danger{background:transparent;color:var(--bad);border:1px solid var(--bad)}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label{font-weight:600;font-size:.88rem}.field input,.field select,.field textarea,input.text{font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg)}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:0 12px;gap:0 12px}.notice{padding:10px 14px;border-radius:8px;margin-bottom:16px;font-weight:600}.notice.ok{background:var(--green-soft);color:var(--green)}.notice.err{background:var(--bad-soft);color:var(--bad)}.notice.info{background:var(--pri-soft);color:var(--pri-ink);font-weight:500}.cal-wrap{overflow-x:auto}table.cal{border-collapse:collapse;font-size:.8rem;min-width:100%}table.cal td,table.cal th{border:1px solid var(--line);text-align:center;padding:0}table.cal th{background:var(--sunk);font-weight:600;padding:4px 2px;min-width:28px}table.cal td.name,table.cal th.name{text-align:left;padding:6px 10px;min-width:150px;white-space:nowrap;background:var(--panel);position:-webkit-sticky;position:sticky;left:0}table.cal td{height:34px}table.cal td.off,table.cal th.off{background:var(--sunk);color:var(--muted)}table.cal td.half{background:linear-gradient(135deg,var(--sunk) 50%,transparent 50%)}table.cal th.today{background:var(--pri);color:var(--on-pri)}table.cal td .cell{display:block;height:100%;min-height:32px;border-radius:4px;margin:1px;color:#fff;font-weight:700;line-height:32px}.legend{flex-wrap:wrap;margin-top:12px}.legend,.monthnav{display:flex;gap:10px}.monthnav{align-items:center}.monthnav a{text-decoration:none;font-weight:700;padding:4px 10px;border:1px solid var(--line);border-radius:8px}.section-title{font-weight:700;color:var(--pri-ink);margin:18px 0 6px;font-size:.95rem}.task{display:grid;grid-template-columns:1fr auto;grid-gap:8px 14px;gap:8px 14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin-bottom:8px}.task.overdue{border-left:4px solid var(--bad)}.task.done{opacity:.65}.task .t{font-weight:600}.task .m{display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:.84rem;margin-top:4px}.task .side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.resource{color:var(--pri);font-weight:600;text-decoration:none}.resource:hover{text-decoration:underline}.steps{list-style:none;padding:0;margin:8px 0 0}.steps li{display:grid;grid-template-columns:70px 1fr auto;grid-gap:10px;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:.9rem}.steps .d{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}details summary{cursor:pointer;font-weight:600;color:var(--pri)}.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-bottom:14px}.filters .field{margin:0;min-width:140px}.filters input[type=search]{min-width:240px}.table-wrap{overflow-x:auto}table.list{width:100%;border-collapse:collapse;font-size:.9rem}table.list th{text-align:left;color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;padding:8px 10px;border-bottom:2px solid var(--line);white-space:nowrap}table.list td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}table.list tr:hover td{background:var(--sunk)}table.list a.name{font-weight:600;text-decoration:none;color:var(--pri-ink)}table.list a.name:hover{text-decoration:underline}table.list td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.chips{gap:4px}.chips,.subtabs{display:flex;flex-wrap:wrap}.subtabs{gap:6px;margin-bottom:14px}.subtabs a{text-decoration:none}.dl{display:grid;grid-template-columns:160px 1fr;grid-gap:6px 14px;gap:6px 14px;font-size:.92rem}.dl dt{color:var(--muted)}.dl dd{margin:0}.warn-box{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:10px 14px;font-weight:600;margin-bottom:14px}.crumbs{margin-bottom:12px;font-size:.9rem}.crumbs a{text-decoration:none}.check{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;margin-bottom:12px}.tabs a.divider{margin-left:14px;position:relative}.tabs a.divider:before{content:"";position:absolute;left:-9px;top:10px;bottom:10px;width:1px;background:var(--line)}.goal-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:16px;gap:16px;margin-bottom:16px;align-items:start}.goal-col{background:var(--sunk);border-radius:var(--r);padding:12px}.goal-col-head{display:flex;justify-content:space-between;align-items:baseline;padding:2px 4px 10px}.goal-col-head h2{margin:0;font-size:1.05rem;color:var(--pri-ink)}.goal{background:var(--panel);border-left:1px solid var(--line);border:1px solid var(--line);border-left-width:4px;border-radius:var(--r);padding:12px 14px;margin-bottom:10px}.goal.done,.goal.on_track{border-left-color:var(--green)}.goal.at_risk{border-left-color:var(--warn)}.goal.behind{border-left-color:var(--bad)}.goal-top{display:flex;gap:10px;align-items:flex-start}.goal-top .grow{flex:1 1;min-width:0}.goal .t{font-weight:700}.bar.bad>span{background:var(--bad)}.krs{list-style:none;padding:0;margin:0 0 8px}.krs li{padding:6px 0;border-top:1px dashed var(--line);font-size:.88rem}.kr-line{display:flex;justify-content:space-between;gap:8px}.kr-form{display:flex;gap:6px;margin-top:4px}.kr-form input{width:90px;padding:4px 8px;font-size:.85rem}pre.code{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px;white-space:pre-wrap;word-break:break-all;font-size:.82rem}table.slots{width:100%;border-collapse:collapse;margin:8px 0 12px}table.slots td,table.slots th{padding:4px 6px;text-align:left;border-bottom:1px solid var(--line);font-size:.88rem}table.slots th[scope=row]{font-weight:600;white-space:nowrap}table.slots input{width:4.6em;padding:5px 6px}fieldset.field{border:1px solid var(--line);border-radius:8px;padding:10px 12px}.field .label{font-weight:600;font-size:.88rem}details>summary{cursor:pointer;padding:6px 0}@media (max-width:480px){table.slots td{display:block;border:0;padding:2px 0}table.slots tr{display:block;border-bottom:1px solid var(--line);padding:6px 0}table.slots thead{display:none}}.app-body{display:grid;grid-template-columns:210px minmax(0,1fr);grid-gap:24px;gap:24px;margin-top:18px}.app-main{min-width:0}.side-nav{position:-webkit-sticky;position:sticky;top:12px;align-self:start}.nav-group{margin-bottom:10px}.nav-group-head{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;cursor:pointer;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-radius:6px}.nav-group-head:hover:not(:disabled){background:var(--sunk)}.nav-group-head:disabled{cursor:default}.nav-group-head:focus-visible{outline:2px solid var(--pri)}.nav-group-head span:first-child{flex:1 1}.side-nav ul{list-style:none;margin:2px 0 0;padding:0}.side-nav li a{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 10px;border-radius:6px;text-decoration:none;color:var(--fg);font-weight:600;font-size:.92rem;border-left:3px solid transparent}.side-nav li a:hover{background:var(--sunk);color:var(--pri)}.side-nav li a.active{background:var(--pri-soft);color:var(--pri);border-left-color:var(--pri)}.nav-backdrop,.nav-toggle{display:none}@media (max-width:860px){.app-body{grid-template-columns:minmax(0,1fr);margin-top:10px}.nav-toggle{display:inline-flex;align-items:center;gap:8px;width:100%;justify-content:flex-start;margin-bottom:10px}.side-nav{position:fixed;top:0;left:0;bottom:0;height:100dvh;width:min(82vw,300px);background:var(--bg);padding:16px 12px;overflow-y:auto;z-index:40;transform:translateX(-105%);transition:transform .18s ease;box-shadow:0 0 24px rgba(0,0,0,.18)}.side-nav.open{transform:none}.nav-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:30}}.evt-bar{width:4px;align-self:stretch;border-radius:2px;flex:none}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden}.mg-head{background:var(--sunk);font-weight:600;font-size:.8rem;padding:6px;text-align:center}.mg-day{min-height:92px;border-top:1px solid var(--line);border-left:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:3px;min-width:0}.mg-day:nth-child(7n+1){border-left:0}.mg-day.out{background:var(--sunk);color:var(--muted)}.mg-day.today .mg-n{color:var(--pri);font-weight:800}.mg-n{font-size:.8rem;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:4px}.mg-studio{font-size:.66rem;font-weight:700;color:var(--studio);background:var(--studio-soft);border-radius:4px;padding:0 4px}.mg-ev{display:block;font-size:.74rem;font-weight:600;text-decoration:none;padding:2px 5px;border-radius:4px;border-left:3px solid;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.cal td .cell.soft{color:var(--muted)}table.cal td .cell sup{font-size:.6rem;margin-left:1px}@media (max-width:640px){.month-grid{grid-template-columns:minmax(0,1fr)}.mg-head{display:none}.mg-day{min-height:0;border-left:0}.mg-day.out{display:none}.mg-day:not(:has(.mg-ev)){display:none}}.views-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px}.views-bar .tag a{color:inherit;text-decoration:none}.view-chip{gap:2px}.link-btn{all:unset;cursor:pointer;padding:0 3px;font-weight:700;opacity:.7}.link-btn:focus-visible,.link-btn:hover{opacity:1;outline:1px solid currentColor;border-radius:3px}.view-save{position:relative}.view-save summary{cursor:pointer;list-style:none}.view-form{position:absolute;z-index:20;top:110%;left:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px;width:260px;display:flex;flex-direction:column;gap:6px;box-shadow:0 6px 18px rgba(0,0,0,.12)}.note-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.note-title{flex:1 1;font-size:1.4rem;font-weight:700;border:0;background:transparent;color:var(--pri-ink);padding:4px 0}.note-title:focus{outline:none;border-bottom:2px solid var(--pri)}.save-error{color:var(--bad);font-weight:600}.blocks{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.blk{position:relative;display:flex;align-items:flex-start;gap:8px}.blk .blk-view,.blk textarea{flex:1 1;min-width:0;font:inherit;color:inherit;background:transparent;border:0;border-radius:4px;padding:3px 6px;resize:none;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.blk textarea{background:var(--sunk)}.blk textarea:focus{outline:2px solid var(--pri-soft)}.blk .blk-view{cursor:text;min-height:1.6em}.blk .blk-view:hover{background:var(--sunk)}.blk .blk-view:focus-visible{outline:2px solid var(--pri)}.blk .ph{color:var(--muted);opacity:.6}.blk-h1 .blk-view,.blk-h1 textarea{font-size:1.35rem;font-weight:700;margin-top:10px}.blk-h2 .blk-view,.blk-h2 textarea{font-size:1.1rem;font-weight:700;margin-top:8px;color:var(--pri-ink)}.blk-quote .blk-view,.blk-quote textarea{border-left:3px solid var(--line);font-style:italic}.blk-mark{padding-top:3px;width:12px;text-align:center}.blk input[type=checkbox]{margin-top:7px}.blk-view.done{text-decoration:line-through;color:var(--muted)}.mention{background:var(--pri-soft);color:var(--pri);border-radius:4px;padding:0 4px;text-decoration:none;font-weight:600}.mention-menu{position:absolute;z-index:30;top:100%;left:24px;list-style:none;margin:2px 0 0;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.14);min-width:260px;max-width:90vw}.mention-menu button{all:unset;display:flex;gap:6px;align-items:center;width:100%;box-sizing:border-box;padding:5px 8px;border-radius:6px;cursor:pointer}.mention-menu button:focus-visible,.mention-menu button:hover{background:var(--sunk)}