:root{--teal: #0d0f12;--teal-dark: #000000;--ink: #0d0f12;--muted: #565b63;--line: #e2e2df;--bg: #f4f4f2;--card: #ffffff;--ok: #17695c;--red: #dc2626;--green: #16a34a;--amber: #b45309;--blue: #1d4ed8;--radius: 4px;--sidebar: 248px}html[data-theme=dark]{--teal: #eceef0;--teal-dark: #ffffff;--ink: #eceef0;--muted: #a2a8b0;--line: #272c33;--bg: #0e1013;--card: #15181c;--ok: #4ade80;--red: #f87171;--green: #4ade80;--amber: #fbbf24;--blue: #93b4ff}html[data-theme=dark] .item-icon,html[data-theme=dark] .tabs,html[data-theme=dark] .theme-toggle,html[data-theme=dark] .nav-item:hover,html[data-theme=dark] .btn-ghost:hover{background:#222834}html[data-theme=dark] .nav-item:not(.active){color:#c7cdd6}html[data-theme=dark] .tab:not(.active){color:#c7cdd6}html[data-theme=dark] .btn-ghost{background:transparent;color:var(--ink)}html[data-theme=dark] .item-desc{color:#b8bfc9}html[data-theme=dark] .icon-btn{color:var(--ink);opacity:.85}html[data-theme=dark]{color-scheme:dark}html[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator,html[data-theme=dark] input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer}html[data-theme=dark] .badge-blue{background:#3b82f624;border-color:transparent}html[data-theme=dark] .badge-amber{background:#b453092e;border-color:transparent}html[data-theme=dark] .badge-grey{background:#94a3b824;border-color:transparent}html[data-theme=dark] .badge-green{background:#16a34a29;border-color:transparent}html[data-theme=dark] .btn-done{background:#16a34a24;border-color:transparent}html[data-theme=dark] .ev-delivery{background:#3b82f629}html[data-theme=dark] .ev-contractor{background:#c2410c2e;color:#fdba74}html[data-theme=dark] .ev-task{background:#16a34a29}html[data-theme=dark] .ev-appointment{background:#7c3aed33;color:#c4b5fd}html[data-theme=dark] .ev-done{background:#4ade8029;color:#4ade80}html[data-theme=dark] .ev-inprogress{background:#eab30833;color:#fde047}html[data-theme=dark] .ev-overdue{background:#f8717133;color:#fca5a5}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea{background:#10141a;color:var(--ink)}html[data-theme=dark] .modal{background:#171b22}.theme-toggle{display:flex;width:100%;background:#eef0f0;border-radius:999px;padding:3px}.theme-opt{flex:1;text-align:center;border:none;background:none;cursor:pointer;font-family:inherit;font-size:13px;padding:6px 10px;border-radius:999px;color:#374151;line-height:1}.theme-opt.active{background:var(--teal);color:var(--card)}html[data-theme=dark] .theme-opt{color:var(--muted)}html[data-theme=dark] .theme-opt.active{color:#0d0f12}*{box-sizing:border-box}body{margin:0;font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}h1{font-size:26px;margin:0;font-weight:600}h2{font-weight:600}a{color:inherit;text-decoration:none}.boot{display:grid;place-items:center;height:100vh;color:var(--muted);text-align:center;padding:24px}.app-shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}.content{padding:28px 40px;max-width:1100px;min-width:0}.topbar{position:sticky;top:0;z-index:30;text-align:center;background:var(--bg);border-bottom:1px solid var(--line);margin:-28px -40px 22px;padding:16px 40px}.topbar{position:sticky}.topbar-family{font-weight:300;letter-spacing:6px;text-indent:6px;font-size:15px;text-transform:uppercase;color:var(--ink);white-space:nowrap}.page-sticky{position:sticky;top:51px;z-index:15;background:var(--bg);margin:0 -40px;padding:22px 40px 30px}.page-sticky .page-head{margin-bottom:18px}.page-sticky .toolbar{margin-bottom:0}.sidebar{background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:22px 16px;position:sticky;top:0;height:100vh}.brand{padding:6px 4px 24px;text-align:center}.brand-mark{letter-spacing:9px;font-weight:300;font-size:27px;text-indent:9px;line-height:1;white-space:nowrap}.brand-mark.center{text-align:center}.brand-sub{font-size:8px;letter-spacing:3px;color:var(--muted);margin-top:9px;font-weight:400;text-indent:3px}.brand-sub.center{text-align:center}.client-switcher{padding:6px 10px 14px}.client-switcher label{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.client-switcher select{width:100%}.nav{display:flex;flex-direction:column;gap:2px;margin-top:6px}.nav-item{padding:11px 14px;border-radius:4px;color:#374151;font-size:15px;font-weight:500}.nav-item:hover{background:#f2f4f4}.nav-item.active{background:var(--teal);color:var(--card)}.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:12px}.user-chip{display:flex;align-items:center;gap:10px;padding:6px;border-radius:4px}.user-chip:hover{background:#f2f4f4}html[data-theme=dark] .user-chip:hover{background:#222834}.avatar.sm{width:32px;height:32px;font-size:13px}.user-meta{flex:1;min-width:0}.user-name{font-weight:600;font-size:13px;line-height:1.2}.user-role{font-size:11px;color:var(--muted)}.btn{border:1px solid transparent;border-radius:3px;padding:9px 14px;font-size:14px;font-weight:500;cursor:pointer;background:#fff;font-family:inherit}.btn-primary{background:var(--teal);color:var(--card)}.btn-primary:hover{background:var(--teal-dark)}.btn-ghost{border-color:var(--line);color:#374151}.btn-ghost:hover{background:#f2f4f4}.btn-done{border-color:#bbf7d0;color:var(--green);background:#f0fdf4}.btn.block{width:100%}.icon-btn{border:none;background:none;cursor:pointer;font-size:16px;opacity:.6}.icon-btn:hover{opacity:1}.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px}.muted{color:var(--muted);font-size:13px}.section-h{margin:24px 0 12px;font-size:16px}.section-h.danger{color:var(--red)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.empty{color:var(--muted);padding:40px;text-align:center;border:1px dashed var(--line);border-radius:var(--radius)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:8px}.stat{display:block}.stat-label{color:var(--muted);font-size:13px}.stat-num{font-size:34px;font-weight:600;margin:6px 0 2px}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.tabs{display:inline-flex;background:#eef0f0;border-radius:999px;padding:3px}.tab{border:none;white-space:nowrap;background:none;padding:7px 16px;border-radius:8px;cursor:pointer;font-family:inherit;font-size:14px;color:#374151}.tab.active{background:var(--teal);color:var(--card)}.search{padding:9px 12px;border:1px solid var(--line);border-radius:10px;font-family:inherit;font-size:14px}.list{display:flex;flex-direction:column;gap:12px}.item-card{display:flex;gap:14px}.item-icon{width:40px;height:40px;border-radius:10px;background:#f2f4f4;display:grid;place-items:center;font-size:18px;flex:none}.item-body{flex:1;min-width:0}.item-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.item-title{font-size:16px;margin:0;font-weight:600;overflow-wrap:anywhere}.item-desc{color:#4b5563;font-size:14px;margin:4px 0 10px;overflow-wrap:anywhere}.item-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:13px}.item-actions{display:flex;gap:10px;margin-top:14px}.due{color:var(--red);font-weight:500}.due.overdue{font-weight:600}.badge{border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600;border:1px solid transparent}.badge-select{font-family:inherit;cursor:pointer}.badge-blue{background:#eff6ff;color:var(--blue);border-color:#dbeafe}.badge-amber{background:#fffbeb;color:var(--amber);border-color:#fde68a}.badge-grey{background:#f3f4f6;color:#4b5563;border-color:#e5e7eb}.badge-green{background:#f0fdf4;color:var(--green);border-color:#bbf7d0}.pill{font-size:11px;font-weight:700;letter-spacing:.5px}.pill-red{color:var(--red)}.pill-amber{color:var(--amber)}.pill-grey{color:var(--muted)}.money{font-size:12px;font-weight:600;padding:2px 8px;border-radius:6px}.money.pay-green{background:#f0fdf4;color:var(--green)}.money.pay-amber{background:#fffbeb;color:var(--amber)}.money.pay-grey{background:#f3f4f6;color:#4b5563}html[data-theme=dark] .money.pay-green{background:#16a34a29}html[data-theme=dark] .money.pay-amber{background:#b453092e}html[data-theme=dark] .money.pay-grey{background:#94a3b824}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182766;display:grid;place-items:center;z-index:50;padding:20px}.modal{background:#fff;border-radius:16px;padding:24px;width:640px;max-width:100%;max-height:90vh;overflow:auto}.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:16px}.form-grid .full{grid-column:1 / -1}.form-grid label{display:flex;flex-direction:column;font-size:13px;color:var(--muted);gap:5px;min-width:0}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.form-grid select{text-overflow:ellipsis}.modal{overflow-x:hidden}.modal-actions{display:flex;justify-content:flex-end;gap:10px}input,select,textarea{padding:9px 11px;border:1px solid var(--line);border-radius:10px;font-family:inherit;font-size:14px;color:var(--ink);background:#fff}textarea{resize:vertical}.form-sub{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}.time-range{display:flex;align-items:center;gap:6px}.time-range input{flex:1;min-width:0}.time-range span{color:var(--muted)}.track-link{color:var(--teal);font-size:13px;font-weight:600;text-decoration:underline}.item-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.file-link{display:inline-flex;align-items:center;gap:6px;max-width:100%;border:1px solid var(--line);background:var(--card);color:var(--teal);font-family:inherit;font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-link:hover{border-color:var(--teal)}.modal-section{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.modal-section h3{margin:0 0 10px;font-size:14px}.att-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.att-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.att-name{border:none;background:none;cursor:pointer;font-family:inherit;font-size:13px;color:var(--teal);text-align:left;padding:0;text-decoration:underline}.att-upload{display:inline-block;cursor:pointer}.log{display:flex;flex-direction:column;gap:8px;margin-bottom:10px;max-height:220px;overflow:auto}.log-item{border-left:2px solid var(--line);padding:2px 0 2px 10px}.log-body{font-size:13px}.log-meta{font-size:11px;color:var(--muted);margin-top:2px}.log-add{display:flex;gap:8px}.log-add input{flex:1}.person-form{display:grid;grid-template-columns:1.2fr 1fr 1.2fr 1fr auto;gap:10px;margin-bottom:16px;align-items:center}.person-row{display:flex;align-items:center;gap:14px}.avatar{width:36px;height:36px;border-radius:50%;background:var(--teal);color:var(--card);display:grid;place-items:center;font-weight:600}.person-info{flex:1}.person-name{font-weight:600}.person-edit{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:8px}.person-actions{display:flex;gap:8px;align-items:center}@media (max-width: 860px){.person-edit{grid-template-columns:1fr}}.cal-nav{display:flex;align-items:center;gap:12px}.cal-month{font-weight:600;min-width:150px;text-align:center}.month-view{display:flex;flex-direction:column;gap:6px;height:calc(100vh - 330px);min-height:440px}.cal-dow-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;flex:none}.calendar{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(0,1fr);gap:6px;flex:1 1 auto;min-height:0}.cal-dow{font-size:12px;color:var(--muted);text-align:center;padding:2px 0;font-weight:600}.cal-cell{background:var(--card);border:1px solid var(--line);border-radius:10px;min-height:0;padding:6px;overflow:hidden}.cal-cell.empty-cell{background:transparent;border:none}.cal-cell.today{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}.cal-date{font-size:12px;color:var(--muted);margin-bottom:4px}.cal-event{font-size:11px;border-radius:6px;padding:2px 5px;margin-bottom:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cal-more{font-size:10px;color:var(--muted)}.cal-event.done{opacity:.85;text-decoration:line-through}.tl-event.done{opacity:.85}.tl-event.done .tl-title{text-decoration:line-through}.ev-delivery{background:#eff6ff;color:var(--blue)}.ev-contractor{background:#fff7ed;color:#c2410c}.ev-task{background:#f0fdf4;color:var(--green)}.ev-appointment{background:#faf5ff;color:#7c3aed}.ev-done{background:#17695c1f;color:var(--ok)}.ev-inprogress{background:#fef9c3;color:#a16207}.ev-overdue{background:#fef2f2;color:var(--red)}.legend.ev-done,.legend.ev-inprogress,.legend.ev-overdue{font-weight:600}.legend-note{background:transparent;color:var(--muted);font-weight:400}.cal-legend{align-items:center;gap:10px}.legend-group-label{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:600}.legend-divider{width:1px;height:18px;background:var(--line);margin:0 4px}.cal-legend{display:flex;gap:16px;margin-top:16px;flex-wrap:wrap}.legend{font-size:12px;padding:3px 8px;border-radius:6px}.cal-toolbar{display:flex;gap:12px;align-items:center}.cal-card{padding:0;overflow:hidden}.allday-row{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);align-items:center}.allday-label{font-size:11px;color:var(--muted);width:52px;flex:none}.allday-items{display:flex;gap:6px;flex-wrap:wrap}.chip{font-size:11px;padding:2px 8px;border-radius:6px;white-space:nowrap}.timeline{display:grid;grid-template-columns:56px 1fr}.tl-hour{position:relative}.tl-hour span{position:absolute;top:-7px;right:8px;font-size:11px;color:var(--muted);background:var(--card);padding:0 3px}.tl-track{position:relative;border-left:1px solid var(--line)}.tl-line{position:absolute;left:0;right:0;border-top:1px solid var(--line)}.tl-event{position:absolute;left:4px;right:4px;height:42px;border-radius:8px;padding:3px 8px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000000d}.tl-title{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-time{font-size:10px;opacity:.75}.week-head{display:grid;grid-template-columns:56px repeat(7,1fr);border-bottom:1px solid var(--line)}.wk-day{text-align:center;padding:8px 4px;font-size:12px;color:var(--muted);border-left:1px solid var(--line)}.wk-day.today{color:var(--teal)}.wk-day b{font-size:15px;color:var(--ink)}.wk-day.today b{color:var(--teal)}.week-allday{display:grid;grid-template-columns:56px repeat(7,1fr);border-bottom:1px solid var(--line);min-height:26px}.wk-allday-cell{border-left:1px solid var(--line);padding:3px;display:flex;flex-direction:column;gap:2px}.week-grid{display:grid;grid-template-columns:56px repeat(7,1fr)}.week-grid .tl-track{border-left:1px solid var(--line)}.report-head-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.report-actions{display:flex;gap:10px}.report-logo{font-size:18px;letter-spacing:6px;text-indent:6px;white-space:nowrap}.report-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.report-title{margin:0;text-align:right}.print-title{display:none}.report-group{margin-bottom:20px}.report-group h3{font-size:13px;color:var(--muted);letter-spacing:1px;margin-bottom:8px}.report-table{width:100%;border-collapse:collapse;font-size:14px}.report-table th{text-align:left;color:var(--muted);font-weight:500;font-size:12px;border-bottom:1px solid var(--line);padding:6px 4px}.report-table td{padding:8px 4px;border-bottom:1px solid #f3f4f6}.login-wrap{display:grid;place-items:center;min-height:100vh;padding:20px;background:radial-gradient(60rem 40rem at 50% -10%,color-mix(in srgb,var(--ink) 6%,transparent),transparent 70%),var(--bg)}.login-card{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:40px 36px 30px;width:384px;max-width:100%;display:flex;flex-direction:column;gap:14px;box-shadow:0 24px 60px #0000001a}html[data-theme=dark] .login-card{box-shadow:0 24px 70px #0000008c}.login-card .brand-mark{color:var(--ink)}.login-card .brand-sub{margin-bottom:10px}.login-card h1{font-size:15px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:14px 0 2px;text-align:center}.login-card h1:after{content:"";display:block;width:28px;height:1px;background:var(--line);margin:14px auto 0}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.login-card input{width:100%;box-sizing:border-box;padding:12px 14px;font:inherit;font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.login-card input::placeholder{color:var(--muted)}.login-card input:hover{border-color:color-mix(in srgb,var(--teal) 40%,var(--line))}.login-card input:focus{outline:none;background:var(--card);border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 22%,transparent)}.login-card input:-webkit-autofill,.login-card input:-webkit-autofill:focus{-webkit-text-fill-color:var(--ink);-webkit-box-shadow:0 0 0 1000px var(--bg) inset;caret-color:var(--ink)}.login-card .btn.block{margin-top:6px;padding:12px 18px;font-size:15px}.error{color:var(--red);font-size:13px}.hint{color:var(--muted);font-size:12px;text-align:center;line-height:1.5;margin-top:4px}.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--ink);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.link-btn:hover{opacity:.7}@media print{@page{margin:0}:root,html[data-theme=dark]{--ink: #111827;--muted: #374151;--bg: #ffffff;--card: #ffffff;--line: #cbd0d6}html,body{background:#fff!important;color:#111827!important;margin:0!important}.sidebar,.page-head button,.tabs,.nav-toggle,.nav-scrim{display:none!important}.content{padding:16mm 15mm 12mm!important;max-width:none}.card{border:none}.page-sticky{position:static;border:none;margin:0;padding:0}#report,#report *,.topbar,.topbar-family,.report-title,.report-group h3,.report-table th,.report-table td,.page-head h1,.page-head .muted{color:#111827!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-table th{border-bottom:1px solid #9aa0a6!important}.report-table td{border-bottom:1px solid #d1d5db!important}.print-title{display:block!important;text-align:right;color:#111827!important;font-size:12px;letter-spacing:2px;text-transform:uppercase;margin-top:6px}}.nav-toggle,.nav-scrim{display:none}@media (max-width: 860px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:60;width:270px;max-width:84vw;height:100dvh;overflow-y:auto;transform:translate(-100%);transition:transform .22s cubic-bezier(.2,.8,.2,1);box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:0 0 0 100vmax #0000}.sidebar .brand{padding:4px 4px 20px}.sidebar .brand-mark{font-size:21px;letter-spacing:7px;text-indent:7px}.nav-item{padding:13px 14px}.nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#0d0f126b;opacity:0;pointer-events:none;transition:opacity .22s ease}.app-shell.nav-open .nav-scrim{opacity:1;pointer-events:auto}body.nav-open{overflow:hidden}.content{padding:20px}.topbar{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;margin:-20px -20px 18px;padding:10px 14px}.topbar-family{grid-column:2;justify-self:center;text-align:center;font-size:15px;letter-spacing:4.5px;text-indent:4.5px;max-width:100%;padding:0 34px;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}.fam-switch{right:14px}.nav-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;flex:none;padding:0;background:none;border:0;cursor:pointer}.nav-toggle span{display:block;width:19px;height:1.6px;background:var(--ink);border-radius:2px;transition:transform .22s ease,opacity .18s ease}.app-shell.nav-open .nav-toggle span:nth-child(1){transform:translateY(6.6px) rotate(45deg)}.app-shell.nav-open .nav-toggle span:nth-child(2){opacity:0}.app-shell.nav-open .nav-toggle span:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}.stat-grid{grid-template-columns:repeat(2,1fr)}.form-grid,.person-form{grid-template-columns:1fr}.page-sticky{top:61px;margin:0 -20px;padding:16px 20px 20px}.page-head{flex-direction:column;align-items:stretch;gap:12px}html,body{overflow-x:hidden}.app-shell{min-width:0}.content{min-width:0;max-width:100vw;overflow-x:clip}.item-meta>*{min-width:0;overflow-wrap:anywhere}.file-link,.track-link{max-width:100%;overflow-wrap:anywhere;text-align:left}.item-card{gap:12px;padding:16px}.item-icon{width:34px;height:34px}.item-head{flex-direction:column;align-items:flex-start;gap:6px}.item-actions{flex-wrap:wrap;gap:8px}.item-actions .btn{flex:1 1 44%;min-width:0;justify-content:center}.toolbar{gap:10px}.tabs{width:100%}.tab{flex:1;text-align:center}.toolbar .search{flex:1 1 100%;width:100%;box-sizing:border-box}}@media (max-width: 400px){.content{padding:16px}.topbar{margin:-16px -16px 14px}.page-sticky{margin:0 -16px;padding:14px 16px 18px}.stat-grid{grid-template-columns:1fr}}.icon{display:inline-block;vertical-align:-.18em;flex:none}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.btn,.nav-item,.item-card,.stat,.tab,.icon-btn,.file-link,.track-link,.theme-opt,.user-chip{transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s cubic-bezier(.16,1,.3,1),box-shadow .2s ease}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.nav-item:focus-visible,.tab:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:9px}.nav{gap:3px}.nav-item{display:flex;align-items:center;gap:12px}.nav-ico{display:inline-flex;color:var(--muted);transition:transform .18s cubic-bezier(.16,1,.3,1),color .18s ease}.nav-item:hover{transform:translate(3px)}.nav-item:hover .nav-ico{color:var(--ink);transform:scale(1.1)}.nav-item:active{transform:translate(3px) scale(.985)}.nav-item.active{box-shadow:0 8px 20px -8px #17695c8c}.nav-item.active .nav-ico{color:var(--card)}html[data-theme=dark] .nav-item.active{box-shadow:0 8px 22px -8px #2a9d8a80}html[data-theme=dark] .nav-item:hover .nav-ico{color:#e6e8ec}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(.98)}.btn-primary{box-shadow:0 6px 16px -8px #17695c99}.btn-primary:hover{box-shadow:0 10px 22px -8px #17695cb8}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;opacity:.7}.icon-btn:hover{opacity:1;background:#0000000d;transform:none}html[data-theme=dark] .icon-btn:hover{background:#ffffff14}.card{box-shadow:0 1px 2px #1018280a}.item-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px -16px #10182857}html[data-theme=dark] .item-card:hover{box-shadow:0 16px 34px -16px #0000009e;border-color:#2f3540}.item-icon{background:#17695c17;color:var(--teal)}html[data-theme=dark] .item-icon{background:#2a9d8a29;color:#7fd3c1}.stat:hover{transform:translateY(-2px);box-shadow:0 14px 30px -16px #10182847}html[data-theme=dark] .stat:hover{box-shadow:0 16px 34px -16px #0000008c}.stat-label{display:flex;align-items:center;gap:8px;font-weight:500}.stat-ico{display:inline-flex;color:var(--teal)}.stat-num{font-variant-numeric:tabular-nums;letter-spacing:-.5px}.money{font-variant-numeric:tabular-nums}.meta-ico{display:inline-flex;align-items:center;gap:5px}.track-link{display:inline-flex;align-items:center;gap:5px;text-decoration:none}.track-link:hover{text-decoration:underline;transform:translateY(-1px)}.file-link{align-items:center}.file-link:hover{transform:translateY(-1px)}.tab:active{transform:scale(.97)}.theme-opt{display:inline-flex;align-items:center;justify-content:center}.report-group h3{display:flex;align-items:center;gap:8px}.btn-danger{color:var(--red);border:1px solid rgba(220,38,38,.35);background:transparent}.btn-danger:hover{background:#dc262614;border-color:var(--red);transform:translateY(-1px)}html[data-theme=dark] .btn-danger{color:#f87171;border-color:#f8717166}html[data-theme=dark] .btn-danger:hover{background:#f8717124}.modal-del{margin-right:auto}.cal-event,.tl-event,.chip{cursor:pointer}.cal-event:hover,.chip:hover{filter:brightness(1.18)}.tl-event:hover{filter:brightness(1.12)}@keyframes cardFlash{0%{box-shadow:0 0 0 3px #17695c99}to{box-shadow:0 0 0 3px #17695c00}}.item-card.flash{animation:cardFlash 1.8s ease-out;border-color:var(--teal)}.msg-modal{width:620px;padding:0;display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:18px}.modal-body{padding:20px 24px;overflow:auto}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--line)}.msg-count{margin-right:auto;font-size:13px}.field-label{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.link-btn{background:none;border:0;padding:0;cursor:pointer;color:var(--teal);font-size:12px;font-weight:600;letter-spacing:0;text-transform:none}.link-btn:hover{text-decoration:underline}.msg-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.msg-person{display:flex;align-items:center;gap:9px;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:transparent;cursor:pointer;font:inherit;color:inherit;transition:border-color .14s ease,background .14s ease,transform .1s ease}.msg-person:hover{border-color:var(--teal)}.msg-person:active{transform:scale(.99)}.msg-person.on{border-color:var(--teal);background:color-mix(in srgb,var(--teal) 10%,transparent)}.msg-check{flex:none;width:18px;height:18px;border-radius:5px;border:1.5px solid var(--line);display:grid;place-items:center;color:#fff}.msg-person.on .msg-check{background:var(--teal);border-color:var(--teal)}.msg-person-name{font-weight:600;font-size:14px}.msg-person-meta{margin-left:auto;font-size:11px;color:var(--muted)}.msg-channels{display:flex;gap:8px}.chip-toggle{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:13px;font-weight:600;transition:all .14s ease}.chip-toggle:hover{border-color:var(--teal);color:var(--ink)}.chip-toggle.on{background:var(--teal);border-color:var(--teal);color:var(--card)}.msg-subject,.msg-body{width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:14px}.msg-body{resize:vertical;line-height:1.6}.msg-subject:focus,.msg-body:focus{outline:none;border-color:var(--teal)}.msg-note{font-size:12px;margin:10px 0 0}.msg-note code{font-size:11px}.msg-results{display:flex;flex-direction:column;gap:8px}.msg-result{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.msg-result-name{font-weight:600;font-size:14px;margin-right:auto}.msg-tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:4px 9px;border-radius:999px;white-space:nowrap}.msg-tag.ok{background:#16a34a24;color:var(--green)}.msg-tag.bad{background:#dc262624;color:var(--red)}.msg-tag.off{background:#78787824;color:var(--muted)}@media (max-width: 640px){.msg-people{grid-template-columns:1fr}}.toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%);display:inline-flex;align-items:center;gap:9px;background:var(--teal);color:#fff;padding:12px 20px;border-radius:999px;font-size:14px;font-weight:600;box-shadow:0 10px 30px #00000038;z-index:60;animation:toastIn .22s ease-out}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.fam-switch{position:absolute;right:40px;top:50%;transform:translateY(-50%);text-align:left}.fam-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:border-color .14s ease,color .14s ease,background .14s ease}.fam-btn:hover,.fam-btn.open{border-color:var(--teal);color:var(--ink)}.fam-caret{transition:transform .16s ease}.fam-btn.open .fam-caret{transform:rotate(180deg)}.fam-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:232px;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px #00000029;z-index:40;animation:famIn .14s ease-out}@keyframes famIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.fam-menu{animation:none}}.fam-menu-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:8px 10px 6px}.fam-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px;border:0;border-radius:8px;background:transparent;color:var(--ink);cursor:pointer;font:inherit;font-size:14px;text-align:left}.fam-item:hover{background:color-mix(in srgb,var(--teal) 10%,transparent)}.fam-item.active{font-weight:600;color:var(--teal)}@media (max-width: 720px){.fam-switch{right:16px}.fam-btn span{display:none}}.prop-form{grid-template-columns:1fr auto}span.att-name{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink);cursor:default}body{transition:background-color .25s ease,color .25s ease}.sidebar,.card,.topbar{transition:background-color .25s ease,border-color .25s ease}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page{animation:pageIn .28s cubic-bezier(.16,1,.3,1) both}@keyframes riseIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.list>*{animation:riseIn .32s cubic-bezier(.16,1,.3,1) both}.list>*:nth-child(1){animation-delay:.03s}.list>*:nth-child(2){animation-delay:.06s}.list>*:nth-child(3){animation-delay:.09s}.list>*:nth-child(4){animation-delay:.12s}.list>*:nth-child(5){animation-delay:.15s}.list>*:nth-child(n+6){animation-delay:.18s}.stat-grid>*{animation:riseIn .32s cubic-bezier(.16,1,.3,1) both}.stat-grid>*:nth-child(2){animation-delay:.05s}.stat-grid>*:nth-child(3){animation-delay:.1s}.stat-grid>*:nth-child(4){animation-delay:.15s}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.modal-backdrop{animation:backdropIn .18s ease-out both}.modal{animation:modalIn .24s cubic-bezier(.16,1,.3,1) both}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 18%,transparent)}input,select,textarea{transition:border-color .14s ease,box-shadow .14s ease}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--teal) 35%,var(--line))}.search{transition:border-color .14s ease,box-shadow .14s ease,width .2s cubic-bezier(.16,1,.3,1)}.cal-cell{transition:border-color .15s ease,box-shadow .15s ease}.cal-cell:not(.empty-cell):hover{border-color:color-mix(in srgb,var(--teal) 45%,var(--line))}.cal-event,.tl-event,.chip{transition:filter .12s ease,transform .12s ease}.cal-event:hover,.chip:hover{transform:translateY(-1px)}.report-table tbody tr{transition:background-color .12s ease}.report-table tbody tr:hover{background:color-mix(in srgb,var(--teal) 5%,transparent)}select.badge-select:hover{filter:brightness(.97)}html[data-theme=dark] select.badge-select:hover{filter:brightness(1.15)}.empty{font-size:14px;line-height:1.6;border-width:1.5px}h1{letter-spacing:-.015em}.stat-num{letter-spacing:-.02em}.brand-mark{transition:letter-spacing .35s cubic-bezier(.16,1,.3,1),text-indent .35s cubic-bezier(.16,1,.3,1)}.brand:hover .brand-mark{letter-spacing:11px}@keyframes toastOut{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,10px)}}.toast.out{animation:toastOut .2s ease-in both}.log::-webkit-scrollbar,.modal::-webkit-scrollbar{width:8px}.log::-webkit-scrollbar-thumb,.modal::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 35%,transparent);border-radius:8px}.log::-webkit-scrollbar-track,.modal::-webkit-scrollbar-track{background:transparent}
