:root,[data-theme=tempo]{--ink: #1c2430;--ink-soft: #3c4656;--paper: #f4efe4;--card: #fffdf8;--line: #d8cfc0;--accent: #c45c26;--accent-dark: #9a4318;--moss: #3d5a45;--warn: #a63d2f;--ok: #2f6b4f;--shadow: 0 12px 32px rgba(28, 36, 48, .08);--font-sans: "IBM Plex Sans", system-ui, sans-serif;--font-display: "Fraunces", Georgia, serif;--page-bg: radial-gradient(1200px 500px at 10% -10%, #efe4cf 0%, transparent 55%), var(--paper);--sidebar: #1c2430;--sidebar-ink: #f4efe4;--sidebar-muted: #c9c2b4;--nav: #d8cfc0;--nav-section: #9aa3b2;--brand-mark: #e8a06a;--radius: 16px;--control-radius: 10px;--pill: 999px;--field: #fff;--on-accent: #fff;--heading: var(--ink);--badge-bg: #efe4cf;--badge-warn-bg: #f3d2cb;--badge-ok-bg: #d5eadc;--flash-err-bg: #f8e4e0;--flash-ok-bg: #dfeee5;--nav-hover-bg: rgba(255,255,255,.08);--nav-hover-color: #fff;--nav-active-color: #fff;--gantt-bg: #fff;--gantt-label-bg: #fbf7ef;--gantt-grid: #efe6d6;--row-hover: transparent;--caution: #c4922a;--caution-ink: #8a6414;--login-band: var(--sidebar)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);background:var(--page-bg);font-family:var(--font-sans);line-height:1.45}h1,h2,h3,.brand{font-family:var(--font-display);font-weight:650;letter-spacing:-.02em;color:var(--heading)}a{color:var(--accent-dark);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--sidebar);color:var(--sidebar-ink);padding:28px 20px;display:flex;flex-direction:column;gap:18px}.brand{font-size:1.6rem;color:var(--sidebar-ink)}.brand span{color:var(--brand-mark)}.brand-version,.version-label{font-family:var(--font-sans);font-size:.75rem;font-weight:500;letter-spacing:.04em;color:var(--sidebar-muted)}.version-label{color:var(--ink-soft);margin-top:-8px}.nav a{display:block;color:var(--nav);padding:8px 10px;border-radius:8px;text-decoration:none}.nav a:hover{background:var(--nav-hover-bg);color:var(--nav-hover-color);text-decoration:none}.nav a.active{background:var(--nav-hover-bg);color:var(--nav-active-color);text-decoration:none}.nav .section{margin:16px 0 6px;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--nav-section)}.sidebar .who{margin-top:auto;font-size:.85rem;color:var(--sidebar-muted)}.sidebar .mode-switch{margin-top:auto}.sidebar .mode-switch+.who{margin-top:12px}.card .mode-switch{margin-top:16px;max-width:280px}.sidebar .muted{color:var(--sidebar-muted)}.sidebar button.linkish{background:none;border:0;color:var(--brand-mark);padding:0;cursor:pointer;font:inherit}.main{padding:32px 40px 56px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px}.company-head{align-items:center}.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:nowrap}.company-logo-edit{display:flex;align-items:center;gap:16px;margin-top:8px}.logo-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:12px}.logo-slot{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.logo-slot strong{font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.logo-slot .project-logo{background:var(--field)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;background:#1c243075}.modal-card{width:min(440px,100%);max-height:min(90vh,720px);overflow:auto}.project-title{display:flex;align-items:center;gap:16px}.project-card{display:flex;gap:16px;align-items:flex-start}.project-logo{width:56px;height:56px;object-fit:contain;flex:0 0 auto;background:var(--field);border:1px solid var(--line);border-radius:var(--control-radius);padding:4px}.project-logo.large{width:84px;height:84px}.company-name{display:inline-flex;align-items:center;gap:10px}label.btn input{display:none}.page-head p{margin:6px 0 0;color:var(--ink-soft)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.user-split{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.user-split>.card{min-width:0;overflow:auto}.grid.three{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}table{width:100%;border-collapse:collapse;font-size:.94rem}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--ink-soft);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}label{display:block;font-size:.82rem;font-weight:600;margin:10px 0 4px}input,select,textarea{width:100%;border:1px solid var(--line);background:var(--field);border-radius:var(--control-radius);padding:9px 11px;font:inherit;color:var(--ink)}textarea{min-height:84px;resize:vertical}input[type=checkbox]{width:auto;padding:0}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}button,.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--pill);padding:9px 16px;background:var(--accent);color:var(--on-accent);font:inherit;font-weight:600;cursor:pointer}button.secondary,.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}button.danger{background:var(--warn)}button.secondary.active{background:var(--ink);color:var(--on-accent);border-color:var(--ink)}.row-tools{display:flex;gap:6px;justify-content:flex-end}button.icon-btn{width:32px;height:32px;padding:0;border-radius:8px;background:transparent;color:var(--ink);border:1px solid var(--line)}button.icon-btn.danger{background:transparent;color:var(--warn);border-color:var(--line)}button.icon-btn svg{width:16px;height:16px;fill:currentColor;display:block}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions button,.actions .btn{padding:6px 12px;font-size:.85rem}.user-list td{vertical-align:middle}.user-list td.actions{width:9rem}.user-list .actions{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:6px;width:9rem}.user-list .actions button{width:9rem;min-width:9rem;white-space:nowrap}.company-list td{vertical-align:middle}.company-list td.actions{display:table-cell;width:1%;white-space:nowrap;vertical-align:middle}.company-list td.actions>*+*{margin-left:8px}button:disabled{opacity:.55;cursor:not-allowed}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.tabs button{background:transparent;color:var(--ink-soft);border:1px solid var(--line);border-radius:var(--pill)}.tabs button.active{background:var(--ink);color:var(--on-accent);border-color:var(--ink)}.badge{display:inline-block;padding:2px 8px;border-radius:var(--pill);background:var(--badge-bg);font-size:.75rem;font-weight:600}.badge.warn{background:var(--badge-warn-bg);color:var(--warn)}.badge.ok{background:var(--badge-ok-bg);color:var(--ok)}.card.signal{border-left-width:8px}.card.signal.online{border-left-color:var(--ok)}.card.signal.down{border-left-color:var(--warn)}.card.signal.not_set{border-left-color:var(--caution)}.signal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.signal-head h3{margin:0}.signal-row{display:flex;flex-wrap:wrap;gap:6px}.signal-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-left-width:6px;border-radius:var(--pill);padding:3px 10px 3px 8px;font-size:.78rem;font-weight:650;background:var(--card)}.signal-chip i{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}.signal-chip.online{border-left-color:var(--ok);color:var(--ok)}.signal-chip.down{border-left-color:var(--warn);color:var(--warn)}.signal-chip.not_set{border-left-color:var(--caution);color:var(--caution-ink)}label.check{display:flex;align-items:center;gap:8px;font-weight:600}.flash{padding:10px 12px;border-radius:var(--control-radius);margin-bottom:12px}.flash.err{background:var(--flash-err-bg);color:var(--warn)}.flash.ok{background:var(--flash-ok-bg);color:var(--ok)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-stage{position:relative;height:100vh;height:100dvh;display:grid;place-items:center;background:var(--sidebar);overflow:hidden}.login-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;-webkit-user-select:none;user-select:none;pointer-events:none}.login-panel{position:relative;z-index:1;width:min(440px,100%);max-height:100%;overflow:auto;padding:28px 20px 36px}.login-card{width:min(440px,100%);border-top:4px solid var(--brand-mark)}.login-card h1{margin:0 0 6px}.login-principle{margin:10px 0 0;color:var(--ink);font-size:.98rem}.login-card .version-label{display:block;margin:10px 0 4px}@media(max-width:720px){.login-panel{padding:20px 16px 28px}}.totp-qr{width:200px;height:200px;background:#fff;padding:8px}.muted{color:var(--ink-soft);font-size:.9rem}.kpi{font-size:1.8rem;font-family:var(--font-display)}.draft-block{border-top:1px dashed var(--line);margin-top:14px;padding-top:12px}.timesheet-week{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.timesheet-week .week-label{flex:0 0 7.4rem;padding-top:8px;display:flex;flex-direction:column;gap:2px;line-height:1.25}.timesheet-week textarea{flex:1 1 auto;min-width:0;min-height:52px}.expected-hours{display:inline-block;min-width:4.5rem;margin-right:8px;font-variant-numeric:tabular-nums}.hours-cell{width:5.5rem}.timesheet-week .hours{flex:0 0 3.4rem;width:3.4rem;padding:6px 4px;text-align:center}.timesheet-week button{flex:0 0 auto;padding:6px 10px;font-size:.8rem}.timesheet-week .badge{align-self:center}.gantt{display:grid;gap:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--gantt-bg)}.gantt-axis,.gantt-row{display:grid;grid-template-columns:220px 1fr;min-height:36px;border-bottom:1px solid var(--line)}.gantt-row:last-child{border-bottom:0}.gantt-label{padding:8px 12px;border-right:1px solid var(--line);background:var(--gantt-label-bg);font-size:.82rem;display:flex;flex-direction:column;justify-content:center;gap:2px}.gantt-label strong{font-size:.78rem;letter-spacing:.04em}.gantt-label span{color:var(--ink-soft);font-size:.78rem}.gantt-track{position:relative;min-height:36px;background-image:linear-gradient(to right,transparent 0,transparent calc(100% - 1px),var(--gantt-grid) calc(100% - 1px))}tbody tr:hover td{background:var(--row-hover)}.gantt-year,.gantt-month,.gantt-today-label{position:absolute;top:6px;font-size:.72rem;color:var(--ink-soft);white-space:nowrap}.gantt-year{font-weight:700;color:var(--ink)}.gantt-today-label{color:var(--warn);font-weight:700;transform:translate(-50%)}.gantt-bar{position:absolute;top:10px;height:16px;border-radius:999px;opacity:.88;min-width:6px}.gantt-mile{position:absolute;top:12px;width:10px;height:10px;background:var(--ink);transform:translate(-50%) rotate(45deg);z-index:2}.gantt-today{position:absolute;top:0;bottom:0;width:2px;background:var(--warn);transform:translate(-1px);z-index:3;pointer-events:none}.gantt-missing{position:absolute;top:8px;left:10px;font-size:.78rem}[data-theme=fxotary]{--ink: #111111;--ink-soft: #5c5c5c;--paper: #f3f3f3;--card: #ffffff;--line: #e4e4e4;--accent: #111111;--accent-dark: #111111;--moss: #111111;--warn: #c23b22;--ok: #3d6b1f;--shadow: none;--font-sans: "Kumbh Sans", system-ui, sans-serif;--font-display: "Outfit", system-ui, sans-serif;--page-bg: #f3f3f3;--sidebar: #111111;--sidebar-ink: #ffffff;--sidebar-muted: #bdbdbd;--nav: #d5d5d5;--nav-section: #8d8d8d;--brand-mark: #c9f31d;--radius: 0px;--control-radius: 0px;--pill: 0px}[data-theme=fxotary] h1,[data-theme=fxotary] h2,[data-theme=fxotary] .brand{font-weight:600;letter-spacing:-.045em}[data-theme=fxotary] .nav a.active,[data-theme=fxotary] .nav a:hover{background:#c9f31d;color:#111}[data-theme=fxotary] button:not(.secondary):not(.danger):not(.linkish):not(.theme-card):not(.doc-open),[data-theme=fxotary] .btn:not(.secondary){background:#111;color:#fff}[data-theme=fxotary] button:not(.secondary):not(.danger):not(.linkish):not(.theme-card):not(.doc-open):hover,[data-theme=fxotary] .btn:not(.secondary):hover{background:#c9f31d;color:#111}[data-theme=fxotary] button.secondary,[data-theme=fxotary] .btn.secondary{background:transparent;color:#111;border-color:#111}[data-theme=fxotary] .tabs button{background:transparent;color:var(--ink-soft);border:1px solid var(--line)}[data-theme=fxotary] .tabs button.active{background:#111;color:#c9f31d;border-color:#111}[data-theme=fxotary] .gantt-label{background:#f7f7f7}[data-theme=fxotary] .gantt-track{background-image:linear-gradient(to right,transparent 0,transparent calc(100% - 1px),#ececec calc(100% - 1px))}[data-theme=fxotary] .theme-card.active{outline:2px solid #c9f31d}[data-theme=phoenix]{--ink: #31374a;--ink-soft: #525b75;--heading: #141824;--paper: #f5f7fa;--card: #ffffff;--field: #ffffff;--line: #cbd0dd;--accent: #3874ff;--accent-dark: #003cc7;--accent-hover: #004dff;--on-accent: #ffffff;--moss: #31374a;--warn: #fa3b1d;--ok: #25b003;--info: #0097eb;--caution: #e5780b;--caution-ink: #bc3803;--shadow: 0 .25rem .5rem rgba(20, 24, 36, .06);--font-sans: "Nunito Sans", system-ui, sans-serif;--font-display: "Nunito Sans", system-ui, sans-serif;--page-bg: #f5f7fa;--sidebar: #ffffff;--sidebar-ink: #141824;--sidebar-muted: #6e7891;--nav: #525b75;--nav-section: #6e7891;--nav-hover-bg: #eff2f6;--nav-hover-color: #3e465b;--nav-active-color: #3874ff;--brand-mark: #3874ff;--radius: 8px;--control-radius: 6px;--pill: 6px;--badge-bg: #eff2f6;--badge-warn-bg: #ffefca;--badge-ok-bg: #d9fbd0;--flash-err-bg: #ffe0db;--flash-ok-bg: #d9fbd0;--gantt-bg: #ffffff;--gantt-label-bg: #f5f7fa;--gantt-grid: #e3e6ed;--row-hover: #eff2f6;--login-band: #f5f7fa}[data-theme=phoenix][data-mode=dark]{color-scheme:dark;--ink: #9fa6bc;--ink-soft: #8a94ad;--heading: #eff2f6;--paper: #0f111a;--card: #141824;--field: #0f111a;--line: #373e53;--accent: #3874ff;--accent-dark: #85a9ff;--accent-hover: #85a9ff;--on-accent: #ffffff;--moss: #cbd0dd;--warn: #f48270;--ok: #90d67f;--info: #60c6ff;--caution: #ffcc85;--caution-ink: #ffcc85;--shadow: none;--page-bg: #0f111a;--sidebar: #141824;--sidebar-ink: #eff2f6;--sidebar-muted: #6e7891;--nav: #9fa6bc;--nav-section: #6e7891;--nav-hover-bg: #222834;--nav-hover-color: #eff2f6;--nav-active-color: #85a9ff;--brand-mark: #85a9ff;--badge-bg: #222834;--badge-warn-bg: #262527;--badge-ok-bg: #1d2527;--flash-err-bg: #241f25;--flash-ok-bg: #1d2527;--gantt-bg: #141824;--gantt-label-bg: #0f111a;--gantt-grid: #31374a;--row-hover: #222834;--login-band: #0f111a}[data-theme=phoenix] .sidebar{border-right:1px solid var(--line)}[data-theme=phoenix] h1,[data-theme=phoenix] h2,[data-theme=phoenix] h3,[data-theme=phoenix] .brand{font-weight:700;letter-spacing:-.02em}[data-theme=phoenix] .tabs button.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}[data-theme=phoenix] button:not(.secondary):not(.danger):not(.linkish):not(.theme-card):not(.doc-open):not(.icon-btn):hover,[data-theme=phoenix] .btn:not(.secondary):hover{background:var(--accent-hover);color:var(--on-accent)}[data-theme=phoenix][data-mode=dark] button:not(.secondary):not(.danger):not(.linkish):not(.theme-card):not(.doc-open):not(.icon-btn):hover,[data-theme=phoenix][data-mode=dark] .btn:not(.secondary):hover{color:#141824}[data-theme=phoenix] button.secondary:hover,[data-theme=phoenix] .btn.secondary:hover{background:var(--nav-hover-bg);color:var(--heading)}[data-theme=phoenix] input:focus,[data-theme=phoenix] select:focus,[data-theme=phoenix] textarea:focus{outline:3px solid color-mix(in srgb,var(--accent) 28%,transparent);border-color:var(--accent)}[data-theme=phoenix] .mode-switch button.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px}.mode-switch button{padding:6px 8px;font-size:.82rem}.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:14px}.doc-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:14px}.doc-open{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;background:transparent;color:var(--ink);border:0;border-radius:var(--control-radius);padding:0;font-weight:450;cursor:pointer}.doc-open strong{font-family:var(--font-display);font-size:1.05rem}.doc-kind{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}.doc-card p{margin:0}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:24px;background:#14100c73}.viewer-panel{width:min(960px,100%);max-height:min(88vh,920px);overflow:auto}.viewer-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.viewer-head h3{margin:0 0 6px}.viewer-head p{margin:0;color:var(--ink-soft)}.viewer-frame{width:100%;height:68vh;border:1px solid var(--line);background:var(--field)}.viewer-text{white-space:pre-wrap;max-height:62vh;overflow:auto;margin:0;padding:12px;border:1px solid var(--line);background:var(--field);font:inherit;font-size:.92rem;color:var(--ink)}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.theme-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;text-align:left;width:100%;border-radius:var(--radius);padding:0;background:var(--card);color:var(--ink);border:1px solid var(--line);cursor:pointer;font-weight:450}.theme-card .swatch{height:72px}.theme-card .copy{padding:14px 16px 16px}.theme-card h3{margin:0 0 6px}.theme-card p{margin:0;color:var(--ink-soft);font-family:var(--font-sans);font-weight:450;font-size:.9rem}.theme-card.active{outline:2px solid var(--accent);outline-offset:2px}.theme-choice{display:flex;flex-direction:column;gap:8px}.theme-choice .danger{align-self:flex-start}.theme-create{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;margin-top:18px}.theme-create .wide{grid-column:1 / -1}.theme-create h3{margin:8px 0 0}input[type=color]{height:42px;padding:4px}.swatch.tempo{background:linear-gradient(135deg,#1c2430 0,#1c2430 38%,#f4efe4 38%,#f4efe4 70%,#c45c26 70%)}.swatch.fxotary{background:linear-gradient(135deg,#111 0,#111 38%,#f3f3f3 38%,#f3f3f3 70%,#c9f31d 70%)}.swatch.phoenix{background:linear-gradient(135deg,#141824 0,#141824 34%,#f5f7fa 34%,#f5f7fa 68%,#3874ff 68%)}[data-theme=custom]{--ink-soft: color-mix(in srgb, var(--ink) 72%, white);--card: color-mix(in srgb, var(--paper) 55%, white);--line: color-mix(in srgb, var(--ink) 18%, var(--paper));--moss: var(--ink);--sidebar-muted: color-mix(in srgb, var(--sidebar-ink) 72%, transparent);--nav: color-mix(in srgb, var(--sidebar-ink) 82%, transparent);--nav-section: color-mix(in srgb, var(--sidebar-ink) 55%, transparent);--shadow: 0 12px 32px rgba(28, 36, 48, .08);--font-sans: "IBM Plex Sans", system-ui, sans-serif;--font-display: "Fraunces", Georgia, serif;--radius: 16px;--control-radius: 10px;--pill: 999px}@media(max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;flex-wrap:wrap}.nav{display:flex;flex-wrap:wrap;gap:4px}.sidebar .who{margin-top:0;width:100%}.main{padding:20px 16px 40px}.gantt-axis,.gantt-row{grid-template-columns:120px 1fr}.user-split{grid-template-columns:1fr}}
