:root{--fx-ink: #0a0a0a;--fx-ink-soft: #1a1a1a;--fx-ivory: #eef0ec;--fx-ivory-deep: #e4e6e2;--fx-paper: #f7f7f5;--fx-muted: #5c5f5a;--fx-line: #d5d8d2;--fx-line-strong: #0a0a0a;--fx-success: #1f7a4c;--fx-danger: #b42318;--fx-warn: #9a6700;--fx-font-display: "Syne", "IBM Plex Sans", "Segoe UI", sans-serif;--fx-font-body: "IBM Plex Sans", "Segoe UI", sans-serif;--fx-radius: 12px;--fx-radius-sm: 8px;--fx-radius-xs: 4px;--fx-shadow-1: 0 1px 0 rgb(10 10 10 / .06);--bg: var(--fx-ivory);--surface: var(--fx-paper);--ink: var(--fx-ink);--muted: var(--fx-muted);--line: var(--fx-line);--line-strong: #b8bcb4;--accent: var(--fx-ink);--accent-hover: #222;--danger: var(--fx-danger);--danger-bg: #fef3f2;--ok-bg: #e8f5ee;--warn-bg: #f8f1e0;--radius: var(--fx-radius-sm);color:var(--ink);background:var(--bg);font-family:var(--fx-font-body);font-size:15px;line-height:1.5}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.shell{min-height:100vh;display:flex;background:var(--bg)}.sidebar{width:232px;flex-shrink:0;background:var(--fx-ink);color:#d8dbd5;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;align-self:flex-start}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;gap:.45rem;padding:1.2rem 1rem 1.05rem;border-bottom:1px solid rgb(255 255 255 / .08)}.sidebar-brand a{display:flex;align-items:baseline;gap:.45rem}.sidebar-close,.mobile-bar,.sidebar-backdrop{display:none}.brand-mark{font-family:var(--fx-font-display);font-weight:700;font-size:1.2rem;letter-spacing:-.03em;color:#fff}.brand-sub{color:#9aa094;font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em}.sidebar-section{padding:.95rem .7rem .3rem}.sidebar-label{margin:0 0 .35rem .5rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#8b9087;font-weight:600}.sidebar-nav{display:grid;gap:.15rem}.sidebar-nav a,.nav-soon{display:flex;align-items:center;justify-content:space-between;padding:.55rem .7rem;border-radius:var(--fx-radius-xs);color:#cfd3cb;font-size:.94rem}.sidebar-nav a:hover{background:#ffffff0f;color:#fff}.sidebar-nav a.active{background:#fff;color:var(--fx-ink);font-weight:600}.nav-soon{color:#7d8278;cursor:default}.nav-soon em{font-style:normal;font-size:.66rem;text-transform:uppercase;letter-spacing:.05em}.sidebar-footer{margin-top:auto;padding:.9rem;border-top:1px solid rgb(255 255 255 / .08);display:grid;gap:.55rem}.sidebar-user{display:grid;gap:.1rem;padding:0 .25rem}.sidebar-user strong{color:#fff;font-size:.9rem}.sidebar-user span{color:#8b9087;font-size:.78rem;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .btn.ghost{color:#cfd3cb;justify-self:start;padding-left:.45rem}.sidebar-footer .btn.ghost:hover{background:#ffffff14;color:#fff}.main-area{flex:1;min-width:0}.content{width:min(1120px,100%);margin:0 auto;padding:1.35rem 1.35rem 2.5rem}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.1rem}.page-head h1{margin:0;font-family:var(--fx-font-display);font-size:1.65rem;font-weight:700;letter-spacing:-.03em;line-height:1.15}.page-lead{margin:.35rem 0 0;color:var(--muted);font-size:.92rem;max-width:42rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--fx-radius);padding:1.1rem 1.15rem;margin-bottom:1rem;box-shadow:var(--fx-shadow-1)}.panel h2,.panel h3{margin:0 0 .85rem;font-family:var(--fx-font-display);font-size:1rem;font-weight:700;letter-spacing:-.02em}.accordion{padding:0;overflow:hidden}.accordion-trigger{width:100%;display:flex;align-items:center;gap:.65rem;padding:.9rem 1.15rem;border:0;background:transparent;cursor:pointer;text-align:left;color:var(--ink);font:inherit}.accordion-trigger:hover{background:var(--fx-ivory)}.accordion-title{font-family:var(--fx-font-display);font-size:1rem;font-weight:700;letter-spacing:-.02em}.accordion-count{margin-left:.15rem;min-width:1.4rem;text-align:center;font-size:.75rem;font-weight:650;color:var(--muted);border:1px solid var(--line);border-radius:var(--fx-radius-xs);padding:.05rem .35rem;background:var(--fx-ivory)}.accordion-chevron{margin-left:auto;width:1.4rem;height:1.4rem;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--fx-radius-xs);font-size:1rem;line-height:1;color:var(--muted)}.accordion-body{padding:0 1.15rem 1.1rem;border-top:1px solid var(--line)}.accordion.is-open .accordion-trigger{border-bottom:0}.grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem .95rem}.stack-form{display:grid;gap:.8rem}.span-2{grid-column:span 2}label{display:grid;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--muted)}input,textarea,select{width:100%;border:1px solid var(--line-strong);border-radius:var(--fx-radius-xs);padding:.55rem .7rem;background:#fff;color:var(--ink)}input:focus,textarea:focus,select:focus{outline:2px solid rgb(10 10 10 / .18);border-color:var(--fx-ink)}.btn{border:1px solid var(--fx-ink);background:#fff;border-radius:var(--fx-radius-xs);padding:.5rem .9rem;cursor:pointer;color:var(--ink);font-weight:600}.btn:hover{background:var(--fx-ivory-deep)}.btn.primary{background:var(--fx-ink);border-color:var(--fx-ink);color:#fff}.btn.primary:hover{background:#222}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted);font-weight:500}.btn.ghost:hover{color:var(--ink);background:var(--fx-ivory-deep)}.btn.danger{background:var(--danger-bg);border-color:#f0c9c5;color:var(--danger)}.btn:disabled{opacity:.55;cursor:default}.list{list-style:none;margin:0;padding:0}.list li a,.list.docs li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .15rem;border-bottom:1px solid var(--line)}.list li:last-child a,.list.docs li:last-child{border-bottom:none}.list li a:hover strong{text-decoration:underline}.list li a span,.list.docs li .muted{color:var(--muted);font-size:.88rem}.list li strong{display:block;font-weight:600}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;min-width:480px}.data-table th,.data-table td{text-align:left;padding:.7rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}.data-table th{font-size:.72rem;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.data-table tr:hover td{background:var(--fx-ivory)}.data-table a{font-weight:600}.data-table a:hover{text-decoration:underline}.search{display:flex;gap:.45rem;flex-wrap:wrap}.search input,.search select{min-width:160px}.muted{color:var(--muted)}.error{color:var(--danger);margin:.5rem 0}.back{color:var(--muted);font-size:.88rem}.back:hover{color:var(--ink);text-decoration:underline}.center{min-height:50vh;display:grid;place-items:center;color:var(--muted)}.login-page{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(1200px 600px at 50% -10%,rgb(10 10 10 / .06),transparent 60%),var(--fx-ivory);color:var(--fx-ink)}.login-shell{width:min(440px,100%);display:grid;gap:1.25rem;justify-items:stretch;animation:login-rise .45s ease-out both}.login-brand{display:inline-flex;align-items:center;gap:.75rem;justify-self:center}.login-mark{display:block;width:40px;height:40px;border-radius:10px}.login-brand-name{font-family:var(--fx-font-display);font-weight:800;font-size:1.35rem;letter-spacing:-.03em}.login-panel{background:#fff;border:1px solid var(--fx-line);border-radius:16px;padding:1.75rem 1.5rem 1.5rem;display:grid;gap:.85rem;box-shadow:0 10px 30px #0a0a0a0d}.login-kicker{margin:0;font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--fx-muted)}.login-title{margin:0;font-family:var(--fx-font-display);font-weight:800;font-size:clamp(1.7rem,5vw,2rem);letter-spacing:-.04em;line-height:1.15}.login-lead{margin:0;color:var(--fx-muted);font-size:.98rem;line-height:1.55}.login-error{margin:0;color:var(--fx-danger);font-size:.92rem;font-weight:500}.login-cta{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;margin-top:.35rem;min-height:48px;padding:.85rem 1.2rem;background:var(--fx-ink);color:#fff;border-radius:999px;font-weight:600;font-size:.98rem;transition:background .15s ease,transform .15s ease}.login-cta:hover{background:#222;transform:translateY(-1px)}.login-meta-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem;margin-top:.35rem;padding-top:1rem;border-top:1px solid var(--fx-line);color:var(--fx-muted);font-size:.82rem}.login-meta-row a{color:var(--fx-ink);text-decoration:underline;text-underline-offset:2px}.login-copy{margin:0;text-align:center;color:var(--fx-muted);font-size:.8rem}@keyframes login-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.login-shell{animation:none}}.kanban{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;align-items:start}.kanban-col{background:var(--surface);border:1px solid var(--line);border-radius:var(--fx-radius);padding:.8rem;min-height:240px}.kanban-col h2{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;margin:0 0 .65rem;font-weight:650;color:var(--muted);font-family:var(--fx-font-body);letter-spacing:0}.kanban-col .count{background:var(--fx-ivory);border:1px solid var(--line);border-radius:var(--fx-radius-xs);padding:.05rem .4rem;font-size:.75rem;color:var(--ink);font-weight:600}.kanban-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.kanban-col li a{display:grid;gap:.15rem;padding:.65rem .6rem;border:1px solid var(--line);border-radius:var(--fx-radius-sm);background:#fff}.kanban-col li a:hover{border-color:var(--fx-ink)}.kanban-col li span{color:var(--muted);font-size:.82rem}.status{display:inline-block;font-size:.75rem;font-weight:650;padding:.14rem .42rem;border-radius:var(--fx-radius-xs);border:1px solid var(--line);background:var(--fx-ivory);color:var(--muted)}.status.new{background:#fff;border-color:var(--fx-ink);color:var(--fx-ink)}.status.discussion,.status.in_touch{background:var(--warn-bg);border-color:#e2d2a8;color:var(--fx-warn)}.status.in_progress,.status.offered,.status.converted{background:var(--ok-bg);border-color:#b9dcc8;color:var(--fx-success)}.status.rejected{background:var(--danger-bg);border-color:#f0c9c5;color:var(--danger)}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.timeline li{border:1px solid var(--line);border-radius:var(--fx-radius-sm);padding:.7rem .8rem;background:#fff}.timeline-meta{display:flex;flex-wrap:wrap;gap:.45rem .75rem;margin-bottom:.35rem;font-size:.8rem;color:var(--muted)}.timeline-body{margin:0;white-space:pre-wrap}.file-input{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:.85rem}.file-input input{max-width:280px}.linkish{background:none;border:none;padding:0;color:var(--ink);cursor:pointer;text-align:left;font:inherit;font-weight:600;text-decoration:underline}.status.draft{background:var(--fx-ivory);border-color:var(--line);color:var(--muted)}.status.sent{background:#fff;border-color:var(--fx-ink);color:var(--fx-ink)}.status.paid{background:var(--ok-bg);border-color:#b9dcc8;color:var(--fx-success)}.status.cancelled{background:var(--danger-bg);border-color:#f0c9c5;color:var(--danger)}.invoice-sheet .invoice-head{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.invoice-sheet .invoice-meta{text-align:right}.invoice-sheet .invoice-meta h2{margin:0 0 .35rem;font-family:var(--fx-font-display)}.invoice-parties{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.25rem}.invoice-parties h3{margin:0 0 .35rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-family:var(--fx-font-body)}.invoice-totals{margin-top:1rem;text-align:right}.invoice-grand{font-size:1.1rem;font-family:var(--fx-font-display)}@media print{.sidebar,.mobile-bar,.sidebar-backdrop,.no-print,.page-head .btn,.back{display:none!important}.shell,.main-area,.content,.page{display:block;width:100%;margin:0;padding:0;background:#fff}.panel{border:none;box-shadow:none;padding:0}}@media(max-width:960px){.kanban{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){body.menu-lock{overflow:hidden}.shell{flex-direction:column}.mobile-bar{display:flex;position:sticky;top:0;z-index:40;align-items:center;gap:.75rem;min-height:52px;padding:.55rem .85rem;padding-top:max(.55rem,env(safe-area-inset-top));background:var(--fx-ink);color:#fff;border-bottom:1px solid rgb(255 255 255 / .08)}.menu-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:0 10px;border:1px solid rgb(255 255 255 / .18);border-radius:var(--fx-radius-xs);background:transparent;cursor:pointer}.menu-toggle span{display:block;height:2px;width:100%;background:#fff;border-radius:2px}.mobile-brand{display:flex;align-items:baseline;gap:.4rem;flex:1;min-width:0}.mobile-brand .brand-mark{font-size:1.05rem}.mobile-user{font-size:.78rem;color:#9aa094;max-width:7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;border:0;background:#0a0a0a73;cursor:pointer}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:50;width:min(288px,86vw);min-height:100vh;max-height:100dvh;overflow-y:auto;transform:translate(-105%);transition:transform .2s ease;box-shadow:8px 0 24px #00000040}.shell.menu-open .sidebar{transform:translate(0)}.sidebar-close{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgb(255 255 255 / .18);border-radius:var(--fx-radius-xs);background:transparent;color:#fff;font-size:1.35rem;line-height:1;cursor:pointer}.sidebar-nav{display:grid;gap:.25rem}.sidebar-nav a,.nav-soon{min-height:44px;display:flex;align-items:center}.sidebar-footer{margin-top:auto}.content{padding:1rem .85rem 2rem;padding-bottom:max(2rem,env(safe-area-inset-bottom))}.page-head{flex-direction:column;align-items:stretch}.page-head h1{font-size:1.35rem}.page-head>div:last-child{display:flex;flex-wrap:wrap;gap:.5rem}.page-head .btn{flex:1 1 auto;min-height:42px}.grid-form{grid-template-columns:1fr}.span-2{grid-column:span 1}.panel,.accordion-body{overflow-x:auto}.data-table{min-width:420px}.btn{min-height:42px}input,textarea,select{font-size:16px;min-height:42px}.invoice-sheet .invoice-head,.invoice-parties{grid-template-columns:1fr;display:grid;gap:1rem}.invoice-sheet .invoice-meta{text-align:left}.search{flex-direction:column;align-items:stretch}.search .btn{width:100%}.login-page{padding:1rem}.login-panel{padding:1.4rem 1.15rem 1.25rem}}@media(max-width:720px){.kanban{grid-template-columns:1fr}.kanban-col{min-height:auto}.filters,.toolbar{flex-direction:column;align-items:stretch}.timeline-meta{flex-wrap:wrap;gap:.25rem .65rem}}
