@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2?dpl=dpl_6FV2PmtMKLDKzbxtSesU27GVsJhn)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2?dpl=dpl_6FV2PmtMKLDKzbxtSesU27GVsJhn)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2?dpl=dpl_6FV2PmtMKLDKzbxtSesU27GVsJhn)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_dd5f33c6-module__WggDGG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_dd5f33c6-module__WggDGG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2?dpl=dpl_6FV2PmtMKLDKzbxtSesU27GVsJhn)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2?dpl=dpl_6FV2PmtMKLDKzbxtSesU27GVsJhn)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2?dpl=dpl_6FV2PmtMKLDKzbxtSesU27GVsJhn)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_d6617093-module__z61v7q__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_d6617093-module__z61v7q__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--bg:#101214;--bg-alt:#16191d;--panel:#1f242a;--panel-strong:#2b3138;--panel-soft:#1a1e23;--text:#edf2f4;--muted:#a5b0bd;--muted-2:#73808f;--line:#36404a;--line-strong:#4b5864;--accent:#36c2b4;--accent-2:#77a8ff;--good:#3ed47a;--bad:#ff6b6b;--warn:#f2b84b;--contractor:#ffb45f;--focus:#f7d65a;--shadow:0 16px 40px #00000042}*{box-sizing:border-box}html{background:var(--bg);color:var(--text)}body{background:linear-gradient(180deg, #36c2b414, transparent 260px), var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif;margin:0;font-size:14px}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.app-shell{min-height:100vh}.topbar{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#101214eb;gap:12px;padding:14px 18px;display:grid;position:sticky;top:0}.topbar-main{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:10px;min-width:220px;display:flex}.brand h1{color:var(--accent);margin:0;font-size:17px;font-weight:700;line-height:1.2}.brand small{color:var(--muted);margin-top:2px;font-size:12px;font-weight:400;display:block}.viewer-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.viewer-email{max-width:280px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.control,.button,.icon-button,.select-control{border:1px solid var(--line);background:var(--panel);min-height:34px;color:var(--text);border-radius:7px}.button,.icon-button,.select-control{cursor:pointer;justify-content:center;align-items:center;gap:7px;padding:7px 11px;text-decoration:none;display:inline-flex}.button:hover,.icon-button:hover,.select-control:hover{border-color:var(--accent);background:var(--panel-strong)}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.55}.button.danger,.icon-button.danger{color:#ffc9c9}.button.danger:hover,.icon-button.danger:hover{background:#ff6b6b1f;border-color:#ff6b6bb3}.icon-button{width:34px;padding:0}.search-control{width:min(320px,100%);padding:7px 10px}.search-wrap{position:relative}.search-wrap svg{color:var(--muted-2);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-wrap input{padding-left:34px}.select-control select{color:var(--text);background:0 0;border:0;outline:0}.toggle-control{border:1px solid var(--line);background:var(--panel);min-height:34px;color:var(--text);cursor:pointer;border-radius:7px;align-items:center;gap:7px;padding:7px 10px;display:inline-flex}.toggle-control input{accent-color:var(--accent)}.tally{border:1px solid var(--line);background:var(--panel-soft);min-height:34px;color:var(--muted);border-radius:7px;align-items:center;gap:8px;padding:7px 10px;display:inline-flex}.tally strong{color:var(--text)}.tally .up{color:var(--good)}.tally .star{color:var(--warn)}.tally .down{color:var(--bad)}.chart-area{padding:16px 22px 70px;overflow-x:auto}.empty-state,.setup-panel,.auth-card,.admin-panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#1f242ae0;border-radius:8px}.empty-state,.setup-panel{max-width:820px;margin:48px auto;padding:22px}.empty-state h2,.setup-panel h2,.auth-card h1,.admin-panel h2{margin:0 0 10px;font-size:18px}.empty-state p,.setup-panel p,.auth-card p{color:var(--muted);margin:0 0 12px;line-height:1.5}.setup-panel code,.auth-card code{font-family:var(--font-geist-mono), ui-monospace, monospace}.setup-panel ol{color:var(--muted);margin:12px 0 0;padding-left:20px;line-height:1.7}.tree,.tree ul{min-width:max-content;margin:0;padding:0;list-style:none}.tree ul{border-left:1px solid var(--line);margin-left:16px;padding-left:18px}.node{margin:5px 0}.node-row{border:1px solid var(--line);background:var(--panel);border-radius:8px;align-items:center;gap:8px;max-width:calc(100vw - 50px);padding:7px 10px;transition:border-color .15s,background .15s,box-shadow .15s;display:inline-flex}.node-row:hover{border-color:var(--accent);background:var(--panel-strong)}.node.leaf>.node-row{background:#1f242a7a}.node.contingent>.node-row{background:#ffb45f14;border-style:dashed;border-color:#ffb45fb8}.node.rated-up>.node-row{box-shadow:inset 3px 0 0 var(--good)}.node.rated-star>.node-row{box-shadow:inset 3px 0 0 var(--warn)}.node.rated-down>.node-row{box-shadow:inset 3px 0 0 var(--bad)}.toggle-node{width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:0 0 20px;justify-content:center;align-items:center;display:inline-flex}.toggle-node.placeholder{visibility:hidden}.person-name{color:var(--text);white-space:nowrap;font-weight:650}.person-title{min-width:0;color:var(--muted);white-space:nowrap}.person-title:before{content:"·";color:var(--line-strong);margin-right:8px}.pill{min-height:20px;color:var(--muted);white-space:nowrap;background:#ffffff0f;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;font-weight:650;display:inline-flex}.muted{color:var(--muted)}.pill.location{color:var(--accent-2);background:#77a8ff1f}.pill.contractor{background:var(--contractor);color:#241505;border-radius:4px}.pill.good{color:var(--good)}.pill.warn{color:var(--warn)}.rating-buttons{flex:none;gap:3px;display:inline-flex}.rating-button{width:28px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.rating-button:hover{color:var(--text);background:#ffffff12}.rating-button.up.active{color:var(--good);background:#3ed47a1f;border-color:#3ed47a70}.rating-button.star.active{color:var(--warn);background:#f2b84b24;border-color:#f2b84b8a}.rating-button.down.active{color:var(--bad);background:#ff6b6b1f;border-color:#ff6b6b70}mark{background:var(--focus);color:#15110a;border-radius:3px;padding:0 2px}.auth-page{place-items:center;min-height:100vh;padding:28px;display:grid}.auth-card{width:min(440px,100%);padding:24px}.auth-form{gap:12px;margin-top:16px;display:grid}.field{gap:6px;display:grid}.field label{color:var(--muted);font-size:12px;font-weight:650}.input{border:1px solid var(--line);background:var(--panel-soft);width:100%;min-height:38px;color:var(--text);border-radius:7px;padding:8px 10px}.notice{border:1px solid var(--line);color:var(--muted);background:#ffffff0a;border-radius:7px;padding:10px 12px;line-height:1.45}.notice.error{color:#ffc9c9;border-color:#ff6b6b7a}.admin-page{gap:18px;padding:20px;display:grid}.admin-header{justify-content:space-between;align-items:center;gap:14px;display:flex}.admin-header h1{color:var(--accent);margin:0;font-size:22px}.admin-grid{grid-template-columns:minmax(540px,.95fr) minmax(360px,1.05fr);gap:18px;display:grid}.admin-panel{overflow:hidden}.admin-panel h2{padding:16px 16px 0}.panel-heading-row{justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 0;display:flex}.panel-heading-row h2{padding:0}.toggle-link{border:1px solid var(--line);min-height:34px;color:var(--muted);background:#ffffff08;border-radius:7px;align-items:center;gap:8px;padding:5px 9px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.toggle-link:hover,.toggle-link.active{border-color:var(--line-strong);color:var(--text)}.toggle-track{background:var(--panel-soft);width:34px;height:18px;box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;position:relative}.toggle-thumb{background:var(--muted);border-radius:999px;width:12px;height:12px;transition:background .12s,transform .12s;position:absolute;top:3px;left:3px}.toggle-link.active .toggle-track{background:#36c2b43d;box-shadow:inset 0 0 0 1px #36c2b4a6}.toggle-link.active .toggle-thumb{background:var(--accent);transform:translate(16px)}.report-stats{grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;display:grid}.stat-tile{border:1px solid var(--line);background:#1f242ac7;border-radius:8px;gap:5px;padding:14px;display:grid}.stat-tile span{color:var(--muted);font-size:12px;font-weight:650}.stat-tile strong{color:var(--text);font-size:24px;line-height:1.1}.admin-form{grid-template-columns:minmax(180px,1fr) 120px auto;gap:8px;padding:0 16px 16px;display:grid}.table-wrap{overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:620px}.data-table th,.data-table td{border-top:1px solid var(--line);text-align:left;vertical-align:middle;padding:10px 12px}.data-table th{color:var(--muted);font-size:12px;font-weight:650}.data-table td{color:var(--text)}.data-table .muted{color:var(--muted)}.vote-count{cursor:help;outline-offset:3px;align-items:baseline;gap:2px;display:inline-flex;position:relative}.viewer-vote-marker{color:var(--accent);font-weight:800}.onsite-vote-marker{background:var(--accent-2);border-radius:999px;flex:none;align-self:center;width:7px;height:7px;display:inline-block;box-shadow:0 0 0 1px #77a8ff59}.vote-tooltip{z-index:30;border:1px solid var(--line-strong);background:var(--panel-strong);width:max-content;max-width:min(360px,70vw);box-shadow:var(--shadow);color:var(--text);opacity:0;overflow-wrap:anywhere;pointer-events:none;text-align:left;visibility:hidden;white-space:normal;border-radius:6px;padding:8px 10px;font-size:12px;font-weight:600;line-height:1.35;transition:opacity .12s,transform .12s,visibility 0s linear .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}.vote-count:hover .vote-tooltip,.vote-count:focus-visible .vote-tooltip{opacity:1;visibility:visible;transition-delay:.5s;transform:translate(-50%)}.sort-link{min-height:24px;color:inherit;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.sort-link:hover,.sort-link.active{color:var(--text)}.sort-icon{color:var(--muted)}.sort-link.active .sort-icon{color:var(--accent)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.access-list{display:grid}.access-list-head,.access-list-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 88px 204px;align-items:center;gap:12px;padding:10px 12px;display:grid}.access-list-head{color:var(--muted);font-size:12px;font-weight:650}.access-user{align-items:center;gap:8px;min-width:0;display:inline-flex}.access-email{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.row-actions{flex-wrap:nowrap;align-items:center;gap:4px;display:flex}.request-list{display:grid}.request-list-head,.request-list-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 92px 84px 180px 118px;align-items:center;gap:12px;padding:10px 12px;display:grid}.request-list-head{color:var(--muted);font-size:12px;font-weight:650}.request-list-empty{border-top:1px solid var(--line);padding:12px}.compact-button{min-height:34px;padding:7px 10px}.compact-form{align-items:center;gap:6px;display:inline-flex}.compact-form .input{width:82px;min-height:34px;padding:6px 8px}.footer{border-top:1px solid var(--line);color:var(--muted);padding:13px 22px;font-size:12px}@media (max-width:900px){.topbar-main,.admin-header{flex-direction:column;align-items:flex-start}.viewer-actions{justify-content:flex-start;width:100%}.admin-grid,.admin-form{grid-template-columns:1fr}.report-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.access-list-head{display:none}.access-list-row{grid-template-columns:1fr;gap:8px}.request-list-head{display:none}.request-list-row{grid-template-columns:1fr;gap:8px}}@media (max-width:640px){body{font-size:13px}.topbar,.chart-area,.footer{padding-left:12px;padding-right:12px}.controls{align-items:stretch}.report-stats{grid-template-columns:1fr}.search-wrap,.search-control,.select-control,.toggle-control,.button{width:100%}.node-row{max-width:none}.person-title{white-space:normal}}
