:root{--text:#3f3d45;--text-h:#08060d;--bg:#f5f5f7;--surface:#fff;--border:#e2e1e6;--accent:#4a6329;--accent-hover:#3a4e20;--accent-bg:#4a63291a;--gold:#c9a227;--gold-bg:#c9a22724;--danger:#dc2626;--danger-bg:#dc262614;--success:#16a34a;--warning:#f59f00;--warning-bg:#f59f001a;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--shadow:#00000014 0 4px 14px -2px}:root[data-theme=dark]{--text:#d1d0d6;--text-h:#f3f4f6;--bg:#121218;--surface:#1a1a22;--border:#2e2d38;--accent:#a3c255;--accent-hover:#bbd777;--accent-bg:#a3c25524;--gold:#e3b93f;--gold-bg:#e3b93f29;--danger:#f87171;--danger-bg:#f871711f;--success:#4ade80;--warning:#fbbf24;--warning-bg:#fbbf2424;--shadow:#0006 0 4px 14px -2px}*{box-sizing:border-box}body{font:14px/1.5 var(--sans);color:var(--text);background:var(--bg);margin:0}#root{min-height:100vh}h1,h2,h3{color:var(--text-h);margin:0 0 4px;font-weight:600}h1{font-size:22px}h2{font-size:18px}h3{font-size:15px}a{color:var(--accent)}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--text-h);background:var(--surface);border:1px solid var(--border);border-radius:6px;width:100%;padding:7px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}label{color:var(--text);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.field{margin-bottom:12px}.field-row{gap:12px;display:flex}.field-row>.field{flex:1}.field-checkbox{align-items:center;gap:8px;display:flex}.field-checkbox input{width:auto}.field-checkbox label{margin:0}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text-h);border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-weight:500;transition:background .15s;display:inline-flex}.btn:hover{background:var(--accent-bg)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:var(--danger-bg)}.btn-warning{background:var(--warning);border-color:var(--warning);color:#fff}.btn-warning:hover{opacity:.9}.btn-sm{padding:4px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topnav{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;flex-shrink:0;align-items:stretch;gap:8px;height:56px;padding:0 16px;display:flex;position:relative}.topnav-hamburger{border:1px solid var(--border);width:36px;height:36px;color:var(--text-h);background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin:auto 4px auto 0;font-size:17px;display:none}.topnav-brand{color:var(--text-h);border-right:1px solid var(--border);white-space:nowrap;align-items:center;margin-right:8px;padding-right:16px;font-size:16px;font-weight:700;display:flex;overflow:hidden}.topnav-brand-short{display:none}.topnav-menu{align-items:stretch;gap:2px;display:flex}.topnav-menu>a{color:var(--text);border-radius:6px;align-items:center;padding:0 14px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.topnav-menu>a:hover{background:var(--accent-bg)}.topnav-menu>a.active{color:var(--accent)}.topnav-dropdown{align-items:stretch;display:flex;position:relative}.topnav-dropdown>button{color:var(--text);font-size:14px;font-weight:500;font-family:var(--sans);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;padding:0 14px;display:flex}.topnav-dropdown>button .caret{opacity:.6;font-size:10px}.topnav-dropdown:hover>button,.topnav-dropdown>button.active{background:var(--accent-bg);color:var(--accent)}.topnav-dropdown-menu{background:var(--surface);border:1px solid var(--border);min-width:200px;box-shadow:var(--shadow);border-radius:8px;flex-direction:column;gap:2px;padding:6px;display:none;position:absolute;top:100%;left:0}.topnav-dropdown:hover .topnav-dropdown-menu{display:flex}.topnav-dropdown-menu a{color:var(--text);white-space:nowrap;border-radius:6px;padding:8px 12px;font-size:13px;font-weight:500;text-decoration:none;display:block}.topnav-dropdown-menu a:hover{background:var(--accent-bg)}.topnav-dropdown-menu a.active{background:var(--accent-bg);color:var(--accent)}.topnav-dropdown-menu.topnav-mega{flex-direction:row;align-items:flex-start;gap:28px;padding:16px 22px}.topnav-dropdown-menu.topnav-mega-right{left:auto;right:0}.topnav-mega-col{flex-direction:column;gap:2px;min-width:180px;display:flex}.section-band{background:var(--surface-2,#eef2f7);color:var(--text);border-radius:4px;padding:7px 12px;font-size:13px;font-weight:700}.topnav-mega-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);margin-bottom:4px;padding:2px 12px 6px;font-size:11px;font-weight:700}.topnav-user{white-space:nowrap;align-items:center;gap:12px;margin-left:auto;display:flex}.topnav-mobile-backdrop{z-index:18;background:#00000059;position:fixed;inset:56px 0 0}.topnav-mobile-panel{background:var(--surface);border-bottom:1px solid var(--border);max-height:calc(100vh - 56px);box-shadow:var(--shadow);z-index:19;flex-direction:column;padding:6px;display:flex;position:fixed;top:56px;left:0;right:0;overflow-y:auto}.topnav-mobile-link,.topnav-mobile-group-toggle{text-align:left;width:100%;color:var(--text);font-size:15px;font-weight:500;font-family:var(--sans);background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;padding:13px 12px;text-decoration:none;display:flex}.topnav-mobile-link.active,.topnav-mobile-group-toggle.active{color:var(--accent);background:var(--accent-bg)}.topnav-mobile-group-toggle .caret{transition:transform .15s}.topnav-mobile-group-toggle .caret.open{transform:rotate(180deg)}.topnav-mobile-group-items{flex-direction:column;padding:0 0 6px 14px;display:flex}.topnav-mobile-group-items a{color:var(--text);border-radius:8px;padding:11px 12px;font-size:14px;text-decoration:none}.topnav-mobile-group-items a.active{color:var(--accent);background:var(--accent-bg)}@media (width<=860px){.topnav-hamburger{display:flex}.topnav-menu,.topnav-brand-full{display:none}.topnav-brand-short{display:inline}.topnav-brand{margin-right:4px;padding-right:8px}.topnav-user-name{display:none}.topnav{gap:4px;padding:0 10px}}.avatar-wrap{flex-shrink:0;display:inline-block;position:relative}.avatar-img{object-fit:cover;border-radius:50%;display:block;box-shadow:0 2px 8px #0000002e}.avatar-fallback{color:#fff;background:linear-gradient(135deg,#6b8e3d,#3b5220);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex;box-shadow:0 2px 8px #0000002e}.avatar-edit-btn{color:#fff;cursor:pointer;background:#4a6329;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:11px;line-height:1;display:flex;position:absolute;bottom:-2px;right:-2px;box-shadow:0 2px 6px #00000040}.avatar-edit-btn:disabled{opacity:.6;cursor:default}.avatar-error{color:#fff;white-space:nowrap;z-index:5;background:#ef4444;border-radius:6px;padding:4px 8px;font-size:11px;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000040}.main{flex-direction:column;flex:1;min-width:0;display:flex}.content{flex:1;padding:24px;overflow:auto}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;padding:20px}.page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px}th{color:var(--text);background:var(--bg);font-weight:600}tbody tr:hover{background:var(--accent-bg)}.table-wrap{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.table-wrap table,.table-wrap .table-wrap{border:none}.table-wrap th,.table-wrap td{white-space:normal}.table-wrap .btn{white-space:nowrap}.badge{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-success{color:var(--success);background:#16a34a1f}.badge-muted{background:var(--border);color:var(--text)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-info{background:var(--accent-bg);color:var(--accent)}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);width:100%;max-width:560px;box-shadow:var(--shadow);border-radius:10px;padding:24px}.modal.modal-lg{max-width:820px}.modal.modal-xl{max-width:1140px}.progress-bar{background:var(--border);border-radius:6px;height:22px;position:relative;overflow:hidden}.progress-bar-fill{background:var(--accent);height:100%;transition:width .2s}.progress-bar-label{color:var(--text-h);justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex;position:absolute;inset:0}button.progress-bar{cursor:pointer;border:none;width:100%;padding:0}button.progress-bar:disabled{cursor:not-allowed;opacity:.6}.highlight-box{background:var(--accent-bg);border-radius:4px;padding:4px 8px;font-weight:600}.highlight-input{background:var(--accent-bg);border-color:var(--accent);font-weight:600}.modal-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;display:flex}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.tabs button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:6px 14px;font-size:12px;font-weight:500}.tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.error-banner{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger);border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.warning-banner{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning);border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px;font-weight:600}@keyframes timer-notice-pulse{0%,to{opacity:1}50%{opacity:.55}}.timer-notice-pulse{animation:1s ease-in-out infinite timer-notice-pulse}.empty-state{text-align:center;color:var(--text);padding:48px 24px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px 20px}.stat-card .value{color:var(--text-h);font-size:26px;font-weight:700}.stat-card .label{color:var(--text);margin-top:4px;font-size:12px}.login-page-v2{background:#0a1830;min-height:100vh;display:flex}.login-photo-panel{background:linear-gradient(160deg,#1c3a6b 0%,#0a1830 100%);flex:1;min-height:100vh;position:relative;overflow:hidden}.login-collage{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;display:grid;position:absolute;inset:0}.login-collage-cell{opacity:.4;background-position:50%;background-size:cover}.login-photo-panel:after{content:"";background:linear-gradient(#060e208c,#060e2059 55%,#060e20d9),linear-gradient(160deg,#1c3a6b80,#0a1830bf);position:absolute;inset:0}.login-photo-caption{z-index:1;text-align:right;color:#fff;text-shadow:0 2px 12px #0000008c;position:absolute;bottom:40px;right:40px}.login-photo-caption-main{letter-spacing:.02em;max-width:420px;font-size:26px;font-weight:800}.login-photo-caption-sub{opacity:.92;margin-top:4px;font-size:15px;font-weight:600}.login-card-v2{clip-path:polygon(0% 0%,72% 0%,88% 5%,72% 15%,88% 25%,72% 35%,88% 45%,72% 55%,88% 65%,72% 75%,88% 85%,72% 95%,0% 100%);background:#fff;flex-shrink:0;align-items:center;width:min(480px,46vw);min-width:360px;min-height:100vh;display:flex;box-shadow:0 0 60px #00000040}.login-card-v2-inner{width:100%;max-width:260px;padding:0 0 0 56px}.login-card-v2-inner h1{letter-spacing:.01em;color:#14213d;margin-bottom:28px;font-size:30px;font-weight:800}.login-field-v2{background:#5ec9c029;border-radius:999px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 18px;display:flex}.login-field-v2 svg{color:#4a6329;flex-shrink:0;width:17px;height:17px}.login-field-v2 input{color:#14213d;background:0 0;border:none;width:100%;padding:0}.login-field-v2 input:focus{outline:none}.login-field-v2 input::placeholder{color:#5c7a76}.login-submit-v2{color:#fff;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:#4a6329;border:none;border-radius:999px;width:100%;margin-top:8px;padding:13px 0;font-size:13px;font-weight:700;transition:background .15s}.login-submit-v2:hover{background:#3a4e20}.login-submit-v2:disabled{opacity:.6;cursor:not-allowed}.login-app-link{color:#14213d;border:1px solid #4a632959;border-radius:12px;align-items:center;gap:12px;margin-top:28px;padding:12px 14px;text-decoration:none;transition:background .15s,border-color .15s;display:flex}.login-app-link:hover{background:#4a632914;border-color:#4a6329}.login-app-link svg{color:#4a6329;flex-shrink:0;width:26px;height:26px}.login-app-link span{flex-direction:column;gap:2px;display:flex}.login-app-link strong{font-size:13px;font-weight:700}.login-app-link small{color:#5c6b5a;font-size:11.5px}.login-footer{color:#fff;white-space:nowrap;z-index:5;background:#060e208c;border-radius:999px;padding:6px 16px;font-size:11.5px;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}@media (width<=760px){.login-page-v2{flex-direction:column}.login-photo-panel{flex:none;height:34vh;min-height:200px}.login-photo-caption{bottom:20px;right:20px}.login-photo-caption-main{max-width:260px;font-size:18px}.login-photo-caption-sub{font-size:12.5px}.login-card-v2{clip-path:none;justify-content:center;width:100%;min-width:0;min-height:66vh;padding:36px 0}.login-card-v2-inner{max-width:360px;padding:0 28px}.login-footer{padding:5px 12px;font-size:10.5px;bottom:60px;left:12px;right:auto;transform:none}}.subsection{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.inline-form{align-items:flex-end;gap:8px;margin-bottom:12px;display:flex}.inline-form .field{flex:1;margin-bottom:0}.perm-table td,.perm-table th{text-align:center;white-space:nowrap}.perm-table td:first-child,.perm-table th:first-child{text-align:left}.perm-table input[type=checkbox]{width:16px;height:16px}.success-banner{color:var(--success);border:1px solid var(--success);background:#16a34a1a;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.perm-template-bar{background:var(--accent-bg);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:12px 14px;display:flex}.perm-template-bar label{margin:0;font-size:13px;font-weight:600}.perm-template-bar select,.perm-template-bar input{max-width:240px;margin:0}.perm-template-note{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent);border-radius:8px;margin-bottom:14px;padding:9px 14px;font-size:13px}@media (width<=720px){.perm-template-bar{flex-direction:column;align-items:stretch}.perm-template-bar select,.perm-template-bar input{max-width:none}}.muted{color:var(--text);opacity:.7;font-size:12px}@keyframes brand-mark-spin{0%{transform:rotate(0)scale(.8)}50%{transform:rotate(180deg)scale(1.15)}to{transform:rotate(360deg)scale(.8)}}.loading-spinner-mark{transform-origin:50%;animation:2s ease-in-out infinite brand-mark-spin;display:block}.loading-spinner-block{flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:32px 0;display:flex}.loading-spinner-block .muted{font-size:13px}.loading-spinner-inline{vertical-align:middle;align-items:center;gap:8px;display:inline-flex}.wizard-steps{border-bottom:1px solid var(--border);align-items:center;gap:8px;margin-bottom:20px;padding-bottom:16px;display:flex}.wizard-step{color:var(--text);background:0 0;border:none;align-items:center;gap:8px;padding:4px 0;font-size:13px;font-weight:500;display:flex}.wizard-step .num{background:var(--accent-bg);width:24px;height:24px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.wizard-step.active{color:var(--accent)}.wizard-step.active .num{background:var(--accent);color:#fff}.wizard-step:disabled{opacity:.4;cursor:not-allowed}.wizard-step-line{background:var(--border);flex:1;min-width:16px;max-width:40px;height:1px}.wizard-cols{grid-template-columns:repeat(3,1fr);align-items:start;gap:24px;display:grid}@media (width<=960px){.wizard-cols{grid-template-columns:1fr}}.wizard-actions{border-top:1px solid var(--border);justify-content:space-between;margin-top:20px;padding-top:16px;display:flex}.picker-input{gap:0;display:flex}.picker-input input{cursor:pointer;background:var(--surface);border-top-right-radius:0;border-bottom-right-radius:0}.picker-input .btn{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0;padding:7px 10px}.picker-search{border-bottom:1px solid var(--border);padding:16px}.picker-row{cursor:pointer}.picker-pagination{flex-wrap:wrap;justify-content:center;gap:4px;padding:12px;display:flex}.picker-pagination button{border:1px solid var(--border);background:var(--surface);border-radius:6px;min-width:30px;padding:4px 10px;font-size:12px}.picker-pagination button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.picker-pagination button:disabled{opacity:.4;cursor:not-allowed}.filter-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.estimate-banner{color:#fff;background:linear-gradient(135deg,#2e3f1c,#55702d);border-radius:12px;padding:24px 28px}.estimate-banner-title{align-items:baseline;gap:12px;display:flex}.estimate-banner-title h1{color:#fff;margin:0}.estimate-banner .estimate-no{opacity:1;color:var(--gold);font-size:15px;font-weight:600}.estimate-status{opacity:.85;align-items:center;gap:10px;margin-top:4px;font-size:14px;display:flex}.estimate-so-link{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #fff6;border-radius:999px;padding:2px 12px;font-size:12px;font-weight:600}.estimate-so-link:hover{background:#ffffff47}.link-btn{color:var(--accent);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--sans);white-space:nowrap;background:0 0;border:none;padding:0}.link-btn:hover{text-decoration:underline}.link-btn:disabled{opacity:.5;cursor:not-allowed}.estimate-detail-grid{border-top:1px solid #ffffff40;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:20px;padding-top:16px;font-size:13px;display:grid}.estimate-detail-grid h4{letter-spacing:.04em;text-transform:uppercase;opacity:.75;margin:0 0 8px;font-size:11px}.estimate-detail-grid>div>div{opacity:.85;margin-bottom:4px}.estimate-detail-grid .hi,.estimate-detail-grid span.hi{opacity:1;font-weight:600}.commission-summary-box{background:#ffffff1f;border-radius:8px;align-self:start;padding:12px 14px}.commission-summary-row{justify-content:space-between;gap:16px;padding:3px 0;font-size:13px;display:flex}.commission-summary-row span:last-child{font-weight:600}.jo-view-block{margin-bottom:20px}.jo-view-block:last-child{margin-bottom:0}.jo-view-index{color:var(--accent);margin-bottom:6px;font-weight:700}.estimate-footer{text-align:right;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px;margin-top:20px;display:grid}.estimate-footer .hi-lg{color:var(--accent);margin-top:2px;font-size:16px;font-weight:700}.status-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.status-tab{color:var(--text);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--sans);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 14px;display:flex}.status-tab:hover{color:var(--accent)}.status-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.status-tab .badge{background:var(--accent-bg);color:var(--accent)}.spreadsheet-wrap{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.spreadsheet-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:12px}.spreadsheet-table th,.spreadsheet-table td{border:1px solid var(--border);vertical-align:top;padding:4px}.spreadsheet-table th{background:var(--bg);white-space:nowrap;padding:8px 6px;font-weight:600}.spreadsheet-table input,.spreadsheet-table select{background:0 0;border:1px solid #0000;border-radius:4px;min-width:90px;padding:5px 6px;font-size:12px}.spreadsheet-table input:hover,.spreadsheet-table select:hover{border-color:var(--border)}.spreadsheet-table input:focus,.spreadsheet-table select:focus{border-color:var(--accent);background:var(--surface)}.spreadsheet-table input:read-only{color:var(--text);opacity:.75;cursor:default}.spreadsheet-table input:read-only:hover,.spreadsheet-table input:read-only:focus{background:0 0;border-color:#0000;outline:none}.spreadsheet-table .picker-input input{min-width:130px}.spreadsheet-table tr.process-row{background:var(--accent-bg)}.spreadsheet-table tr.draft-row{background:#eab30814}.spreadsheet-row-actions{white-space:nowrap;gap:4px;display:flex}.nstdjo-materials{table-layout:fixed;width:100%;min-width:1210px}.nstdjo-materials input,.nstdjo-materials select{box-sizing:border-box;width:100%;min-width:0}.nstdjo-materials th,.nstdjo-materials td{padding:4px 3px}.nstdjo-materials th:first-child,.nstdjo-materials td:first-child,.nstdjo-materials th:nth-child(3),.nstdjo-materials td:nth-child(3){width:160px}.nstdjo-materials th:nth-child(2),.nstdjo-materials td:nth-child(2),.nstdjo-materials th:nth-child(4),.nstdjo-materials td:nth-child(4),.nstdjo-materials th:nth-child(5),.nstdjo-materials td:nth-child(5),.nstdjo-materials th:nth-child(6),.nstdjo-materials td:nth-child(6),.nstdjo-materials th:nth-child(7),.nstdjo-materials td:nth-child(7),.nstdjo-materials th:nth-child(8),.nstdjo-materials td:nth-child(8),.nstdjo-materials th:nth-child(9),.nstdjo-materials td:nth-child(9){width:64px}.nstdjo-materials th:nth-child(10),.nstdjo-materials td:nth-child(10),.nstdjo-materials th:nth-child(11),.nstdjo-materials td:nth-child(11){width:86px}.nstdjo-materials th:nth-child(12),.nstdjo-materials td:nth-child(12),.nstdjo-materials th:nth-child(13),.nstdjo-materials td:nth-child(13){width:112px}.nstdjo-materials th:nth-child(14),.nstdjo-materials td:nth-child(14){width:78px}.review-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 24px;margin-bottom:16px;display:grid}.review-grid .item .label{color:var(--text);opacity:.7;text-transform:uppercase;letter-spacing:.04em;font-size:11px}.review-grid .item .value{color:var(--text-h);font-size:14px;font-weight:500}.print-toolbar{margin-bottom:16px}.print-sheet{color:#333;max-width:960px;box-shadow:var(--shadow);background:#fff;border-radius:10px;margin:0 auto;padding:40px 48px;font-size:13px;line-height:1.6}.print-letterhead{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.print-logo{color:#2e3f1c;font-size:28px;font-weight:800}.print-company-address{text-align:right;color:#444}.print-title{text-align:center;color:#222;margin:8px 0 28px;font-size:20px}.print-info-grid{justify-content:space-between;gap:24px;margin-bottom:24px;display:flex}.print-info-grid>div:first-child{flex:1}.print-info-right{white-space:nowrap;text-align:right}.print-items-table{border-collapse:collapse;width:100%;margin-bottom:16px}.print-items-table th,.print-items-table td{text-align:left;border-bottom:1px solid #ddd;padding:8px 6px;font-size:12px}.print-items-table th{color:#555;font-weight:600}.print-items-table td:nth-child(n+4),.print-items-table th:nth-child(n+4){text-align:right}.print-totals-row{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;display:flex}.print-totals{min-width:240px}.print-totals>div{justify-content:space-between;padding:3px 0;display:flex}.print-total-final{border-top:1px solid #ccc;margin-top:4px;font-weight:700;padding-top:6px!important}.print-terms{color:#444;margin-bottom:32px;font-size:11.5px}.print-terms h4{color:#222;margin:16px 0 6px}.print-indent{margin-left:16px}.print-bank-grid{grid-template-columns:1fr 1fr;gap:2px 16px;margin:6px 0;display:grid}:root{--chq-date-top:11mm;--chq-date-right:14mm;--chq-payee-top:19mm;--chq-payee-left:28mm;--chq-amount-top:19mm;--chq-amount-right:36mm;--chq-words-top:27mm;--chq-words-left:21mm;--chq-font:11pt}.cheque-sheet{background:var(--surface);color:#000;width:210mm;height:120mm;font-size:var(--chq-font);font-family:var(--sans);margin:0 auto;position:relative}.cheque-sheet>div{white-space:nowrap;position:absolute}.chq-date{top:var(--chq-date-top);right:var(--chq-date-right);gap:7mm;display:flex}.chq-date-group{letter-spacing:3.2mm}.chq-payee{top:var(--chq-payee-top);left:var(--chq-payee-left);font-weight:600}.chq-amount{top:var(--chq-amount-top);right:var(--chq-amount-right);font-weight:600}.chq-words{top:var(--chq-words-top);left:var(--chq-words-left);font-weight:600}.cheque-print .cheque-sheet{box-shadow:var(--shadow);outline:1px dashed var(--border)}@media print{.cheque-print .cheque-sheet{box-shadow:none;background:0 0;outline:none;width:auto;height:auto;margin:0}.cheque-print .print-toolbar{display:none!important}}.print-logo-img{object-fit:contain;object-position:left center;max-width:340px;height:56px}.voucher-fields{grid-template-columns:max-content 1fr;align-content:start;gap:6px 10px;display:grid}.voucher-fields dt{color:#222;white-space:nowrap;font-weight:600}.voucher-fields dd{color:#333;margin:0}.voucher-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:28px;margin-bottom:28px;display:grid}.voucher-sheet .print-signatures{border-top:1px solid #e0e0e0;padding-top:14px}.voucher-sheet .print-signatures>div{border-top:1px solid #999;margin:44px 12px 0;padding-top:6px;font-size:12px}.print-table{border-collapse:collapse;width:100%;margin-bottom:12px}.print-table th,.print-table td{text-align:left;border:1px solid #d0d0d0;padding:8px 10px;font-size:12px}.print-table th{color:#444;background:#fafafa;font-weight:600}.print-table .num{text-align:right}.print-voucher-total{text-align:right;margin:24px 0 8px;font-size:13px}.print-signatures{text-align:center;justify-content:space-between;gap:24px;margin-top:48px;display:flex}.print-signatures>div{flex:1}.print-sig-label{margin-bottom:32px;font-weight:600}.print-sig-name{margin-bottom:4px}.print-sig-line{color:#777;border-top:1px solid #999;padding-top:4px}:root{--so-brand:#075056;--so-brand-tint:#e6eff0;--so-brand-line:#d3e2e3;--so-brand-zebra:#f6fafa}.so-sheet{max-width:1180px;padding:34px 40px 26px}.so-letterhead{border-bottom:3px solid var(--so-brand);align-items:flex-start;margin-bottom:0;padding-bottom:14px}.so-letterhead-address{color:#5c6a6b;margin-top:8px;font-size:10.5px;line-height:1.5}.so-letterhead-customer{text-align:right;color:#333;max-width:46%;font-size:12px;line-height:1.5}.so-letterhead-customer strong{color:#1c2626;font-size:13.5px}.so-letterhead-customer-label{text-transform:uppercase;letter-spacing:.12em;color:var(--so-brand);margin-bottom:3px;font-size:9.5px;font-weight:700}.so-sheet .print-logo{color:var(--so-brand)}.so-print-band{background:var(--so-brand);color:#fff;border-radius:0 0 6px 6px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding:9px 16px;display:flex}.so-print-band-title{text-transform:uppercase;letter-spacing:.07em;align-items:baseline;gap:12px;font-size:16px;font-weight:700;display:flex}.so-print-no{letter-spacing:.04em;color:#b9d6d8;font-size:14px;font-weight:600}.so-unbalanced-badge{color:#92400e;letter-spacing:.04em;text-transform:uppercase;background:#fef3c7;border:1px solid #f59e0b;border-radius:999px;margin-right:10px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.so-print-unbalanced{color:#7c2d12;background:#fde68a;border-radius:999px;margin-right:8px;padding:2px 8px;font-weight:700;display:inline-block}.so-print-table td.so-variance,table td.so-variance{color:#92400e;background:#fffbeb;font-weight:700}.so-print-status{text-transform:uppercase;letter-spacing:.09em;border:1px solid #ffffff8c;border-radius:999px;flex-shrink:0;padding:3px 12px;font-size:10px}.so-print-info{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 32px;margin-bottom:6px;display:grid}.so-print-info .voucher-fields{gap:4px 10px;font-size:11.5px}.so-print-block-title{border-bottom:1px solid var(--so-brand-line);text-transform:uppercase;letter-spacing:.1em;color:var(--so-brand);margin:0 0 7px;padding-bottom:4px;font-size:10px;font-weight:700}.so-print-section{text-transform:uppercase;letter-spacing:.09em;color:var(--so-brand);align-items:center;gap:10px;margin:24px 0 8px;font-size:11.5px;font-weight:700;display:flex}.so-print-section:after{content:"";background:var(--so-brand-line);flex:1;height:1px}.so-print-table th{background:var(--so-brand);color:#fff;border-color:var(--so-brand);font-weight:600}.so-print-table tbody tr:nth-child(2n) td{background:var(--so-brand-zebra)}.so-print-total-row td{background:var(--so-brand-tint);border-top:2px solid var(--so-brand)}.so-print-table{table-layout:fixed;width:100%}.so-print-table th,.so-print-table td{white-space:normal;overflow-wrap:normal;padding:5px 6px;font-size:9.5px}.so-print-table td.num{white-space:nowrap}.so-print-table--dense th,.so-print-table--dense td{padding:4px;font-size:8px}.so-print-table-wrap{overflow-x:auto}.so-print-totals{border:1px solid var(--so-brand-line);border-radius:6px;width:300px;margin:24px 0 0 auto;font-size:12px;overflow:hidden}.so-print-totals>div{justify-content:space-between;gap:16px;padding:6px 14px;display:flex}.so-print-totals>div+div{border-top:1px solid var(--so-brand-tint)}.so-print-grand{background:var(--so-brand);color:#fff;font-weight:700;border-top:none!important}.so-print-signatures{margin-top:40px}.so-print-signatures .print-sig-label{text-transform:uppercase;letter-spacing:.06em;color:var(--so-brand);margin-bottom:26px;font-size:10.5px}.so-print-signatures .print-sig-name{font-size:12px}.so-print-footnote{border-top:1px solid var(--so-brand-line);letter-spacing:.04em;color:#8c9b9c;text-align:center;margin-top:24px;padding-top:8px;font-size:9.5px}@media print{.so-sheet{max-width:none;padding:0}.so-print-table-wrap{overflow:visible}.so-sheet,.so-print-band,.so-print-table th,.so-print-table tbody tr:nth-child(2n) td,.so-print-total-row td,.so-print-grand{-webkit-print-color-adjust:exact;print-color-adjust:exact}#root,.app-shell{min-height:0}.so-letterhead{padding-bottom:10px}.so-sheet .print-logo-img{height:40px}.so-letterhead-address{margin-top:6px;font-size:9px}.so-letterhead-customer{font-size:11px}.so-letterhead-customer strong{font-size:12px}.so-print-band{margin-bottom:12px;padding:6px 14px}.so-print-band-title{font-size:14px}.so-print-no{font-size:12.5px}.so-print-info{gap:8px 20px}.so-print-info .voucher-fields{gap:2px 7px;font-size:9.5px}.so-print-block-title{margin-bottom:4px;padding-bottom:3px;font-size:9px}.so-print-section{margin:12px 0 5px;font-size:10.5px}.so-print-table th,.so-print-table td{padding:3.5px 5px}.so-print-totals{margin-top:12px;font-size:10.5px}.so-print-totals>div{padding:3.5px 12px}.so-print-signatures{margin-top:20px}.so-print-signatures .print-sig-label{margin-bottom:14px;font-size:9.5px}.so-print-signatures .print-sig-name{font-size:10.5px}.so-print-footnote{margin-top:12px;padding-top:6px;font-size:8.5px}.so-print-table thead{display:table-header-group}.so-print-table tr,.so-print-signatures,.so-print-totals{page-break-inside:avoid}}@media (width<=720px){.content{padding:14px}.page-header{flex-wrap:wrap;align-items:flex-start;gap:8px}.field-row{flex-direction:column;gap:0}.modal-overlay{align-items:stretch;padding:0}.modal{border-radius:0;width:100%;max-width:none;min-height:100%;padding:18px 16px 24px}.wizard-steps{padding-bottom:12px;overflow-x:auto}.wizard-actions{flex-wrap:wrap;gap:8px}.inline-form{flex-direction:column;align-items:stretch}.modal-actions{flex-wrap:wrap}table.responsive-cards,table.responsive-cards tbody,table.responsive-cards tr{width:100%;display:block}table.responsive-cards thead{display:none}table.responsive-cards tr{border:1px solid var(--border);border-radius:8px;margin-bottom:10px;padding:2px 12px}table.responsive-cards tr:last-child{margin-bottom:0}table.responsive-cards td{border-bottom:1px solid var(--border);white-space:normal;text-align:right;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;display:flex}table.responsive-cards td:last-child{border-bottom:none}table.responsive-cards td:not([data-label]){justify-content:flex-end}table.responsive-cards td[data-label]:before{content:attr(data-label);color:var(--text);text-align:left;flex-shrink:0;font-weight:600}table.responsive-cards td[colspan]{text-align:center;border-bottom:none;display:block}}@media print{.topnav,.print-toolbar,.chat-widget{display:none!important}.content{padding:0!important}.print-sheet{box-shadow:none;max-width:none}.voucher-sheet{flex-direction:column;min-height:96vh;display:flex}.voucher-sheet .print-signatures{margin-top:auto}}.holo-dashboard{--dash-bg:#f2f3fa;--dash-purple:#4a6329;--dash-blue:#86a44c;--dash-green:#c9a227;--dash-lime:#3e8577;--dash-text:#2b2d42;--dash-text-dim:#8a8da8;--dash-border:#2b2d4214;--dash-card-shadow:0 8px 28px #2b2d4214;--holo-bg-1:#0b0d21;--holo-bg-2:#131a3a;--holo-cyan:#22d3ee;--holo-magenta:#f472b6;--holo-violet:#a78bfa;--holo-amber:#fbbf24;--holo-green:#34d399;--holo-text:#2b2d42;--holo-text-dim:#8a8da8;--holo-card-border:var(--dash-border);background:var(--dash-bg);min-height:100vh;color:var(--dash-text);margin:-24px;padding:24px}.holo-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:22px;display:flex}.holo-header h1{color:var(--dash-text);margin:0;font-size:24px}.holo-header .holo-sub{color:var(--holo-text-dim);margin-top:2px;font-size:13px}.holo-role-badge{letter-spacing:.03em;text-transform:uppercase;color:var(--dash-purple);background:#4a63291f;border:1px solid #4a632947;border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-size:12px;font-weight:600;display:inline-flex}.holo-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:20px;display:grid}.holo-grid.holo-grid-wide{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.holo-card{border:1px solid var(--dash-border);box-shadow:var(--dash-card-shadow);background:#fff;border-radius:18px;padding:18px 20px;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}.holo-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px #2b2d4221}.holo-card h3{letter-spacing:.06em;text-transform:uppercase;color:var(--dash-text-dim);margin:0 0 14px;font-size:12px;font-weight:700}.holo-stat-card{color:#fff;border:none;flex-direction:column;gap:10px;display:flex}.holo-stat-card.tone-purple{background:linear-gradient(135deg,#5c7a33,#3b5220)}.holo-stat-card.tone-blue{background:linear-gradient(135deg,#86a44c,#5f7f2f)}.holo-stat-card.tone-green{background:linear-gradient(135deg,#d9b23c,#b0871a)}.holo-stat-card.tone-lime{background:linear-gradient(135deg,#3e8577,#24594f)}.holo-stat-card:hover{box-shadow:0 16px 32px #2b2d4238}.holo-stat-top{justify-content:space-between;align-items:flex-start;display:flex}.holo-stat-label{color:#ffffffd9;text-transform:uppercase;letter-spacing:.05em;font-size:12px}.holo-stat-value{color:#fff;margin-top:4px;font-size:26px;font-weight:700}.holo-stat-delta{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.holo-stat-delta.up{color:#fff;background:#fff3}.holo-stat-delta.down{color:#fff;background:#00000026}.holo-stat-icon{border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;font-size:17px;display:flex;color:#fff!important;background:#ffffff38!important}.holo-sparkline{margin-top:2px;display:block}.holo-donut{justify-content:center;align-items:center;margin:0 auto;display:flex;position:relative}.holo-donut-center{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.holo-donut-value{color:var(--dash-text);font-size:20px;font-weight:700}.holo-donut-sub{color:var(--dash-text-dim);max-width:80px;margin-top:2px;font-size:10.5px}.holo-legend{flex-direction:column;gap:8px;margin-top:14px;display:flex}.holo-legend-row{color:var(--dash-text);align-items:center;gap:8px;font-size:12.5px;display:flex}.holo-legend-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;box-shadow:0 0 6px}.holo-legend-label{color:var(--dash-text-dim);flex:1}.holo-legend-value{color:var(--dash-text);font-weight:600}.holo-barlist{flex-direction:column;gap:12px;display:flex}.holo-barlist-row{grid-template-columns:110px 1fr auto;align-items:center;gap:10px;display:grid}.holo-barlist-label{color:var(--dash-text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.holo-barlist-track{background:#2b2d4212;border-radius:999px;height:8px;overflow:hidden}.holo-barlist-fill{border-radius:999px;height:100%;transition:width .6s}.holo-barlist-value{color:var(--dash-text);white-space:nowrap;font-size:12.5px;font-weight:600}.holo-activity{flex-direction:column;gap:2px;display:flex}.holo-activity-row{border-bottom:1px solid var(--dash-border);justify-content:space-between;align-items:center;padding:10px 0;font-size:12.5px;display:flex}.holo-activity-row:last-child{border-bottom:none}.holo-activity-main{color:var(--dash-text)}.holo-activity-sub{color:var(--dash-text-dim);margin-top:2px;font-size:11.5px}.holo-activity-amount{color:var(--dash-text);font-weight:600}.holo-status-pill{text-transform:capitalize;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600}.holo-rep-table{border-collapse:collapse;width:100%;font-size:12.5px}.holo-rep-table th{text-align:left;color:var(--dash-text-dim);text-transform:uppercase;letter-spacing:.04em;background:0 0;padding:0 10px 10px;font-size:10.5px;font-weight:600}.holo-rep-table td{color:var(--dash-text);border-top:1px solid var(--dash-border);background:0 0;padding:10px}.holo-rep-table tr:hover td{background:#7c6fe80f}.holo-rep-table td:not(:first-child),.holo-rep-table th:not(:first-child){text-align:right}.holo-empty{color:var(--dash-text-dim);text-align:center;padding:24px 0;font-size:13px}.dash-main-grid{grid-template-columns:300px 1fr;align-items:stretch;gap:18px;margin-bottom:20px;display:grid}@media (width<=900px){.dash-main-grid{grid-template-columns:1fr}}.dash-profile-card{text-align:center;flex-direction:column;align-items:center;display:flex}.dash-profile-card .avatar-wrap{margin-bottom:12px}.dash-profile-name{color:var(--dash-text);font-size:16px;font-weight:700}.dash-profile-role{color:var(--dash-text-dim);margin-top:2px;margin-bottom:18px;font-size:12.5px}.dash-rings-row{flex-wrap:wrap;justify-content:center;gap:16px;margin-bottom:8px;display:flex}.dash-ring-item{flex-direction:column;align-items:center;gap:6px;display:flex}.dash-ring-item .holo-donut-value{font-size:14px}.dash-ring-label{color:var(--dash-text-dim);text-align:center;max-width:70px;font-size:10.5px}.dash-activity-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--dash-text-dim);align-self:flex-start;margin:18px 0 4px;font-size:11px;font-weight:700}.dash-profile-card .holo-activity{text-align:left;width:100%}.dash-chart-card{flex-direction:column;display:flex}.holo-tile-dark{--holo-text-dim:#9497c9;background:radial-gradient(ellipse 400px 240px at 20% -10%, #a78bfa4d, transparent 60%), radial-gradient(ellipse 300px 220px at 100% 110%, #22d3ee2e, transparent 55%), linear-gradient(160deg, var(--holo-bg-1), var(--holo-bg-2));border-radius:16px;flex-direction:column;flex:1;align-items:center;padding:18px;display:flex;position:relative;overflow:hidden}.holo-tile-dark .holo-donut-value{color:#fff}.holo-tile-dark .holo-donut-sub{color:#9497c9}.holo3d-orb-scene{perspective:500px;margin:0 auto;position:relative}.holo3d-orb-ring-wrap{transform-style:preserve-3d;position:absolute;inset:0;transform:rotateX(62deg)}.holo3d-orb-ring{border:3px solid var(--orb-color);box-shadow:0 0 16px var(--orb-color), inset 0 0 16px var(--orb-color);border-radius:50%;position:absolute;inset:10%}.holo3d-orb-ring-outer{opacity:.9;border-style:dashed;animation:6s linear infinite holo3d-spin-z}.holo3d-orb-ring-inner{opacity:.55;animation:3.4s linear infinite reverse holo3d-spin-z;inset:26%}@keyframes holo3d-spin-z{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.holo3d-orb-particle{background:var(--orb-color);width:8px;height:8px;box-shadow:0 0 10px var(--orb-color), 0 0 22px var(--orb-color);transform-style:preserve-3d;border-radius:50%;margin:-4px 0 0 -4px;animation:4.5s linear infinite holo3d-orbit;position:absolute;top:50%;left:50%}@keyframes holo3d-orbit{0%{transform:rotate(0)translate(56px)}to{transform:rotate(360deg)translate(56px)}}.holo3d-orb-center{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.holo3d-bars-scene{perspective:700px;margin:0 auto;position:relative}.holo3d-bars-stage{width:100%;height:100%;transform-style:preserve-3d;transform-origin:bottom;animation:6s ease-in-out infinite holo3d-breathe;position:relative;transform:rotateX(38deg)}@keyframes holo3d-breathe{0%,to{transform:rotateX(38deg)}50%{transform:rotateX(42deg)}}.holo3d-bar{width:var(--bar-w);height:var(--bar-h);transform-style:preserve-3d;animation:.7s cubic-bezier(.22,1,.36,1) both holo3d-grow;position:absolute;bottom:0}@keyframes holo3d-grow{0%{opacity:0;height:2px}to{height:var(--bar-h);opacity:1}}.holo3d-bar-front{background:linear-gradient(180deg, color-mix(in srgb, var(--bar-color) 88%, white) 0%, var(--bar-color) 100%);box-shadow:0 0 14px var(--bar-color), inset 0 0 8px #ffffff40;border:1px solid #ffffff59;border-radius:3px 3px 0 0;position:absolute;inset:0}.holo3d-bar-top{width:var(--bar-w);height:var(--bar-d);background:color-mix(in srgb, var(--bar-color) 80%, white);transform-origin:top;border:1px solid #ffffff59;border-radius:3px;position:absolute;top:0;left:0;transform:rotateX(90deg)}.holo3d-bars-labels{color:var(--holo-text-dim);text-align:center;margin-top:8px;font-size:10.5px;display:flex}@media (width<=720px){.holo-dashboard{margin:-16px;padding:16px}.holo-barlist-row{grid-template-columns:80px 1fr auto}}.pf-legend{color:var(--text);flex-wrap:wrap;gap:14px;margin-top:12px;font-size:12px;display:flex}.pf-legend-item{align-items:center;gap:6px;display:inline-flex}.pf-swatch{border:1px solid var(--pf-border);background:var(--pf-fill);border-radius:4px;width:14px;height:14px}.pf-swatch.pf-decision{border-radius:3px;transform:rotate(45deg)scale(.8)}.pf-card{padding:8px}.pf-viewport{width:100%;overflow:auto}.pf-canvas{transform-origin:0 0;position:relative}.pf-edges{pointer-events:none;position:absolute;inset:0}.pf-edge path{fill:none;stroke:var(--border);stroke-width:1.6px}.pf-edge{color:var(--border)}.pf-edge text{fill:var(--text);opacity:.75;paint-order:stroke;stroke:var(--surface);stroke-width:3px;font-size:11px;font-weight:600}.pf-arrow-plain path{fill:var(--border)}.pf-arrow-yes path{fill:var(--success)}.pf-arrow-no path{fill:var(--danger)}.pf-arrow-lit path{fill:var(--accent)}.pf-edge-yes{color:var(--success)}.pf-edge-yes path{stroke:var(--success)}.pf-edge-yes text{fill:var(--success);opacity:1}.pf-edge-no{color:var(--danger)}.pf-edge-no path{stroke:var(--danger)}.pf-edge-no text{fill:var(--danger);opacity:1}.pf-edge.is-lit{color:var(--accent)}.pf-edge.is-lit path{stroke:var(--accent);stroke-width:2.6px}.pf-edge.is-lit text{fill:var(--accent);opacity:1}.pf-node{cursor:pointer;text-align:center;font:inherit;color:var(--pf-text);background:var(--pf-fill);border:1.5px solid var(--pf-border);box-shadow:var(--shadow);border-radius:8px;justify-content:center;align-items:center;margin:0;padding:6px 10px;font-size:12.5px;font-weight:600;line-height:1.25;transition:transform .12s,box-shadow .12s;display:flex;position:absolute}.pf-node:hover,.pf-node:focus-visible,.pf-node.is-hot{box-shadow:0 0 0 3px var(--accent-bg), var(--shadow);outline:none;transform:translateY(-2px)}.pf-node-label{z-index:1;max-width:100%;position:relative}.pf-node.is-decision{box-shadow:none;background:0 0;border:none}.pf-node.is-decision .pf-node-label{max-width:82px;font-size:11.5px}.pf-diamond{background:var(--pf-fill);border:1.5px solid var(--pf-border);width:70.7%;height:70.7%;box-shadow:var(--shadow);border-radius:6px;position:absolute;top:14.65%;left:14.65%;transform:rotate(45deg)}.pf-sales{--pf-fill:#fdf0d5;--pf-border:#d9a441;--pf-text:#6b4a10}.pf-design{--pf-fill:#fbe0e6;--pf-border:#d9748f;--pf-text:#7a2740}.pf-production{--pf-fill:#fdf0d5;--pf-border:#d9a441;--pf-text:#6b4a10}.pf-procurement{--pf-fill:#e2f0e6;--pf-border:#66a67e;--pf-text:#1f5133}.pf-accounting{--pf-fill:#e4ecfa;--pf-border:#6d8fd0;--pf-text:#22406f}.pf-decision{--pf-fill:#f6f2fb;--pf-border:#9d7cc9;--pf-text:#4a2f70}:root[data-theme=dark] .pf-sales{--pf-fill:#3a2f18;--pf-border:#a8802f;--pf-text:#f0dcae}:root[data-theme=dark] .pf-design{--pf-fill:#3c2029;--pf-border:#b06178;--pf-text:#f4cdd8}:root[data-theme=dark] .pf-production{--pf-fill:#3a2f18;--pf-border:#a8802f;--pf-text:#f0dcae}:root[data-theme=dark] .pf-procurement{--pf-fill:#1d3327;--pf-border:#4f8767;--pf-text:#c3e6d1}:root[data-theme=dark] .pf-accounting{--pf-fill:#1e2b42;--pf-border:#5878b3;--pf-text:#cbdcf7}:root[data-theme=dark] .pf-decision{--pf-fill:#2c2438;--pf-border:#8c6cb8;--pf-text:#ddcef2}.pf-guide-meta{background:var(--accent-bg);border-radius:8px;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;padding:12px 14px;font-size:13px;display:grid}.pf-guide-meta .muted{margin-bottom:2px;display:block}.pf-guide-summary{margin:0 0 18px;font-size:14px}.pf-guide h3{text-transform:uppercase;letter-spacing:.04em;margin:18px 0 8px;font-size:13px}.pf-steps,.pf-notes{margin:0;padding-left:22px;font-size:13.5px}.pf-steps li{margin-bottom:9px}.pf-notes li{margin-bottom:7px}@media (width<=720px){.pf-guide-meta{grid-template-columns:1fr;gap:10px}}.theme-toggle{--tt-w:128px;--tt-h:32px;--tt-pad:3px;--tt-knob:calc(var(--tt-h) - (var(--tt-pad) * 2));width:var(--tt-w);height:var(--tt-h);cursor:pointer;font:inherit;border:1px solid #0000;border-radius:999px;flex:none;padding:0;transition:background .25s,border-color .25s;position:relative;overflow:hidden}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle-label{line-height:var(--tt-h);letter-spacing:.07em;white-space:nowrap;font-size:10px;font-weight:800;transition:color .25s,padding .25s;display:block}.theme-toggle-knob{top:var(--tt-pad);width:var(--tt-knob);height:var(--tt-knob);color:#111;background:#fff;border-radius:50%;justify-content:center;align-items:center;transition:left .25s;display:flex;position:absolute;box-shadow:0 1px 3px #00000047}.theme-toggle.is-day{background:#e4e4e8;border-color:#d6d6dc}.theme-toggle.is-day .theme-toggle-label{color:#16151a;text-align:left;padding-left:14px;padding-right:calc(var(--tt-knob) + 8px)}.theme-toggle.is-day .theme-toggle-knob{left:calc(var(--tt-w) - var(--tt-knob) - var(--tt-pad))}.theme-toggle.is-night{background:#0b0b0f;border-color:#33333d}.theme-toggle.is-night .theme-toggle-label{color:#fff;text-align:right;padding-right:14px;padding-left:calc(var(--tt-knob) + 8px)}.theme-toggle.is-night .theme-toggle-knob{left:var(--tt-pad)}@media (width<=900px){.theme-toggle{--tt-w:52px}.theme-toggle-label{display:none}}@media (prefers-reduced-motion:reduce){.theme-toggle,.theme-toggle-label,.theme-toggle-knob{transition:none}}.badge-warning{background:var(--warning-bg);color:var(--warning)}.time-clock{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.time-clock-now{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:40px;font-weight:700;line-height:1.1}.time-clock-date{color:var(--text);margin-top:4px}.time-clock-shift{margin-top:10px;font-size:13px}.time-clock-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.time-clock-actions .btn{min-width:160px;padding:12px 20px;font-size:15px}.time-clock-elapsed{color:var(--text);font-size:13px}.emp-picker-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.emp-picker-head label{margin:0}.emp-picker-actions{gap:6px;display:flex}.emp-picker{border:1px solid var(--border);border-radius:8px;max-height:240px;margin-top:6px;overflow-y:auto}.emp-picker-row{border-top:1px solid var(--border);cursor:pointer;align-items:center;gap:10px;margin:0;padding:8px 12px;font-weight:400;display:flex}.emp-picker-row:first-child{border-top:none}.emp-picker-row:hover,.emp-picker-row.is-on{background:var(--accent-bg)}.emp-picker-row input[type=checkbox]{width:auto;accent-color:var(--accent);flex-shrink:0;margin:0}.emp-picker-text{text-align:left;flex-direction:column;min-width:0;display:flex}.emp-picker-name{color:var(--text-h);font-size:14px;font-weight:500}.emp-picker-meta{color:var(--text);opacity:.8;font-size:12px}.emp-picker-empty{padding:10px 12px}.day-picker{flex-wrap:wrap;gap:6px;display:flex}.day-picker button{min-width:48px}.day-picker button.is-on{background:var(--accent);border-color:var(--accent);color:#fff}.timeclock-chip{border:1px solid var(--border);color:var(--text-h);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.timeclock-chip .dot{background:var(--text);opacity:.5;border-radius:50%;width:8px;height:8px}.timeclock-chip.is-on .dot{background:var(--success);opacity:1}.timeclock-chip:hover{border-color:var(--accent)}@media (width<=640px){.time-clock-actions{align-items:stretch;width:100%}.time-clock-now{font-size:32px}}@media (width<=480px){.timeclock-chip{padding:8px}.timeclock-chip-label{display:none}}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td.num,th.num{text-align:right}.negative{color:var(--danger)}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--accent-bg)}.payroll-table tfoot th{background:var(--bg);border-top:2px solid var(--border);color:var(--text-h)}.link-button{color:var(--danger);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.payslip-group{margin-top:14px}.payslip-group h4{color:var(--text-h);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:13px}.payslip-table td,.payslip-table th{padding:6px 8px}.payslip-table tfoot th{color:var(--text-h);border-top:1px solid var(--border)}.payslip-table input{min-width:90px}.payslip-net{background:var(--accent-bg);color:var(--accent);border-radius:10px;justify-content:space-between;align-items:center;margin-top:16px;padding:12px 16px;display:flex}.payslip-net strong{font-variant-numeric:tabular-nums;font-size:22px}.payslip-adjustment{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:6px 0;display:flex}.payslip-adjustment span:first-child{flex:1}.loan-progress{background:var(--border);border-radius:999px;height:5px;margin:4px 0 2px;overflow:hidden}.loan-progress span{background:var(--success);height:100%;display:block}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.settings-grid h3{margin-top:0}.settings-wide{grid-column:1/-1}.settings-pairs{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 12px;display:grid}.schedule-toolbar{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.schedule-toolbar .field{min-width:240px;margin-bottom:0}.schedule-week{align-items:center;gap:6px;display:flex}.schedule-week input{width:auto}.schedule-grid{min-width:900px}.schedule-grid th{text-align:center;white-space:nowrap}.schedule-grid th:first-child{text-align:left}.schedule-grid th .muted{font-size:11px;font-weight:400}.schedule-grid th.is-today{color:var(--accent)}.schedule-emp{min-width:160px}.schedule-emp .muted{font-size:11px}.schedule-cell{vertical-align:top;min-width:110px;padding:4px}.schedule-cell select{border-radius:6px;padding:4px 6px;font-size:12px}.schedule-cell.is-shift select{background:var(--accent-bg);color:var(--text-h);border-color:#0000;font-weight:600}.schedule-cell.is-rest select{background:var(--bg);color:var(--text)}.schedule-cell.is-default select{font-style:italic;font-weight:400}.schedule-cell.is-changed select{outline:2px solid var(--warning);outline-offset:-1px}.schedule-time{color:var(--text);opacity:.85;text-align:center;margin-top:2px;font-size:10.5px}.schedule-grid tfoot th{background:var(--bg);font-weight:600}.dtr-page{color:#222;background:#e9e9ec;min-height:100vh;padding:20px 16px 40px}.dtr-toolbar{align-items:center;gap:12px;max-width:820px;margin:0 auto 16px;display:flex}.dtr-toolbar .muted{color:#555}.dtr-sheet{color:#222;background:#fff;border-radius:6px;max-width:820px;margin:0 auto 20px;padding:32px 36px;font-size:11.5px;line-height:1.35;box-shadow:0 2px 12px #0000001f}.dtr-head{text-align:center;margin-bottom:14px}.dtr-company{letter-spacing:.02em;text-transform:uppercase;font-size:15px;font-weight:800}.dtr-branch{color:#444;font-size:12px}.dtr-head h1{letter-spacing:.12em;color:#111;margin:10px 0 2px;font-size:16px}.dtr-period{color:#444;font-size:12px}.dtr-info{grid-template-columns:max-content 1fr max-content 1fr;gap:4px 12px;margin:0 0 12px;display:grid}.dtr-info dt{color:#333;font-weight:700}.dtr-info dd{border-bottom:1px solid #bbb;min-height:16px;margin:0}.dtr-table{border-collapse:collapse;width:100%}.dtr-table th,.dtr-table td{text-align:left;vertical-align:top;color:#222;background:#fff;border:1px solid #9a9a9a;padding:3px 5px;font-size:11px}.dtr-table thead th{text-align:center;background:#f0f0f0;font-weight:700}.dtr-table tfoot th{background:#f6f6f6;font-weight:700}.dtr-table .num{text-align:right;white-space:nowrap}.dtr-table td:nth-child(4),.dtr-table td:nth-child(5){white-space:nowrap}.dtr-sched div{color:#555;white-space:nowrap;font-size:10px}.dtr-remarks{color:#444;font-size:10px}.dtr-table tr.is-rest td{color:#777;background:#f5f5f5}.dtr-table tr.is-absent td.dtr-remarks{color:#b91c1c;font-weight:700}.dtr-certify{color:#333;margin:14px 0 0;font-size:10.5px;font-style:italic}.dtr-signatures{text-align:center;gap:28px;margin-top:40px;display:flex}.dtr-signatures>div{color:#333;border-top:1px solid #555;flex:1;padding-top:4px;font-size:10.5px}@media print{@page{size:A4 portrait;margin:10mm}#root,.app-shell{min-height:0}.dtr-page{background:#fff;min-height:0;padding:0}.dtr-toolbar,.chat-widget{display:none!important}.dtr-sheet{box-shadow:none;break-after:page;border-radius:0;max-width:none;margin:0;padding:0}.dtr-sheet:last-child{break-after:auto}.dtr-table thead{display:table-header-group}.dtr-table tr{break-inside:avoid}.dtr-table tr.is-rest td,.dtr-table thead th,.dtr-table tfoot th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.kiosk{color:#f3f6ee;min-height:100vh;padding:calc(18px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#13190d;flex-direction:column;align-items:center;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex}.kiosk-center{justify-content:center}.kiosk-card{text-align:center;background:#1f2817;border-radius:16px;max-width:420px;padding:28px}.kiosk-card h1{color:#fff;margin:0 0 8px;font-size:22px}.kiosk-head{justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:560px;display:flex}.kiosk-brand{letter-spacing:.06em;text-transform:uppercase;color:#a3c255;font-size:13px;font-weight:700}.kiosk-place{color:#fff;font-size:20px;font-weight:700}.kiosk-fullscreen{color:#b9c4ad;font:inherit;cursor:pointer;background:0 0;border:1px solid #3a4a2c;border-radius:8px;padding:6px 10px;font-size:12px}.kiosk-clock{text-align:center;margin:22px 0 18px}.kiosk-time{font-variant-numeric:tabular-nums;color:#fff;font-size:clamp(44px,12vw,76px);font-weight:800;line-height:1}.kiosk-date{color:#b9c4ad;margin-top:8px;font-size:15px}.kiosk-panel{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:380px;display:flex}.kiosk-prompt{color:#dfe6d6;font-size:18px}.kiosk-dots{gap:14px;margin:4px 0;display:flex}.kiosk-dots span{border:2px solid #a3c255;border-radius:50%;width:16px;height:16px}.kiosk-dots span.is-on{background:#a3c255}.kiosk-error{color:#fca5a5;text-align:center;background:#f8717129;border-radius:10px;width:100%;padding:10px 14px;font-size:15px}.kiosk-pad{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;margin-top:6px;display:grid}.kiosk-pad button{cursor:pointer;color:#fff;background:#243019;border:none;border-radius:16px;height:74px;font-family:inherit;font-size:30px;font-weight:600}.kiosk-pad button:active{background:#3a4a2c}.kiosk-pad button:disabled{opacity:.5}.kiosk-pad .kiosk-pad-alt{color:#b9c4ad;background:#1b2413;font-size:18px}.kiosk-hello{color:#fff;text-align:center;font-size:30px;font-weight:800}.kiosk-sub{color:#b9c4ad;text-align:center;font-size:16px}.kiosk-shift{color:#dfe6d6;text-align:center;background:#243019;border-radius:999px;padding:8px 16px;font-size:15px}.kiosk-punch{cursor:pointer;letter-spacing:.04em;color:#13190d;border:none;border-radius:50%;width:220px;height:220px;margin:10px 0;font-family:inherit;font-size:32px;font-weight:800;box-shadow:0 12px 36px #0006}.kiosk-punch.is-in{background:#a3c255}.kiosk-punch.is-out{background:#f87171}.kiosk-punch:active{transform:scale(.97)}.kiosk-punch:disabled{opacity:.6}.kiosk-cancel{color:#dfe6d6;font:inherit;cursor:pointer;background:0 0;border:1px solid #3a4a2c;border-radius:12px;width:100%;padding:14px 22px;font-size:16px}.kiosk-done-note{color:#cfe39a;text-align:center;background:#a3c25524;border-radius:12px;width:100%;padding:14px;font-size:16px}.kiosk-success{margin-top:10px}.kiosk-check{color:#13190d;background:#a3c255;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;font-size:56px;font-weight:800;display:flex}.kiosk-spinner{border:4px solid #2c3a20;border-top-color:#a3c255;border-radius:50%;width:44px;height:44px;animation:.8s linear infinite kiosk-spin}@keyframes kiosk-spin{to{transform:rotate(360deg)}}@media (height<=700px){.kiosk-clock{margin:10px 0}.kiosk-pad button{height:58px}.kiosk-punch{width:170px;height:170px;font-size:26px}}.kiosk-link-box{gap:8px;display:flex}.kiosk-link-box input{font-family:monospace;font-size:12px}.kiosk-pin{letter-spacing:2px;color:var(--text-h);font-family:monospace;font-size:15px;font-weight:700}.pin-reveal{letter-spacing:6px;color:var(--text-h);background:var(--accent-bg);border-radius:8px;padding:6px 14px;font-family:monospace;font-size:26px;font-weight:800;display:inline-block}:root{--feed-ease:cubic-bezier(.22, .61, .36, 1);--feed-lift-shadow:0 16px 32px -14px #4a63296b, 0 3px 10px -6px #0000001f;--feed-glow:#4a63292e;--feed-hairline:linear-gradient(90deg, var(--accent), var(--gold))}:root[data-theme=dark]{--feed-lift-shadow:0 18px 36px -16px #000000bf, 0 0 0 1px #a3c2551f;--feed-glow:#a3c25529}.feed-layout{grid-template-columns:260px minmax(0,640px) 300px;justify-content:center;align-items:start;gap:20px;padding:4px 0 40px;display:grid}.feed-rail{flex-direction:column;gap:16px;display:flex;position:sticky;top:16px}.feed-main{flex-direction:column;gap:16px;min-width:0;display:flex}.feed-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);transition:transform .24s var(--feed-ease), box-shadow .24s var(--feed-ease), border-color .24s var(--feed-ease);border-radius:12px;padding:14px 16px;position:relative}.feed-card:hover{box-shadow:var(--feed-lift-shadow);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));transform:translateY(-3px)}.feed-card:before{content:"";background:var(--feed-hairline);transform-origin:0;opacity:0;height:2px;transition:transform .34s var(--feed-ease), opacity .2s ease;pointer-events:none;z-index:2;border-radius:12px 12px 0 0;position:absolute;inset:0 0 auto;transform:scaleX(0)}.feed-card:hover:before{opacity:1;transform:scaleX(1)}.feed-rail-title{color:var(--text-h);margin-bottom:10px;font-size:.95rem;font-weight:700}@keyframes feed-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.feed-post{animation:feed-rise .34s var(--feed-ease) backwards}.feed-profile{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:26px 16px 20px;display:flex;overflow:hidden}.feed-profile:after{content:"";background:linear-gradient(120deg, var(--accent-bg), var(--gold-bg));z-index:0;height:56px;position:absolute;inset:0 0 auto}.feed-profile>*{z-index:1;position:relative}.feed-profile .avatar-wrap{transition:transform .28s var(--feed-ease)}.feed-profile:hover .avatar-wrap{transform:scale(1.06)}.feed-profile-name{color:var(--text-h);margin-top:6px;font-weight:700}.feed-profile-role{color:var(--accent);background:var(--accent-bg);border-radius:999px;padding:2px 10px;font-size:.78rem}.feed-shortcuts{flex-direction:column;gap:2px;display:flex}.feed-shortcut{color:var(--text);transition:background .18s ease, color .18s ease, transform .22s var(--feed-ease);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:.9rem;text-decoration:none;display:flex;position:relative}.feed-shortcut:hover{background:var(--accent-bg);color:var(--accent);transform:translate(4px)}.feed-shortcut-icon{transition:transform .26s var(--feed-ease);font-size:1.05rem}.feed-shortcut:hover .feed-shortcut-icon{transform:scale(1.2)rotate(-6deg)}.feed-about-text{color:var(--text);margin:0 0 12px;font-size:.85rem;line-height:1.5}.feed-guide-list{color:var(--text);margin:0;padding-left:18px;font-size:.82rem;line-height:1.7}.feed-composer-top{align-items:flex-start;gap:10px;display:flex}.feed-composer-trigger{text-align:left;cursor:pointer;background:var(--bg);border:1px solid var(--border);color:var(--text);font-size:.95rem;font-family:var(--sans);transition:border-color .2s ease, box-shadow .24s var(--feed-ease), background .2s ease;border-radius:999px;flex:1;padding:10px 16px}.feed-composer-trigger:hover{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 4px var(--feed-glow)}.feed-composer-textarea{resize:vertical;min-height:76px;color:var(--text-h);font-size:1.05rem;font-family:var(--sans);background:0 0;border:none;outline:none;flex:1;line-height:1.5}.feed-composer-photos{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.feed-composer-photo{border:1px solid var(--border);width:92px;height:92px;animation:feed-pop .28s var(--feed-ease) backwards;transition:transform .22s var(--feed-ease), border-color .22s ease;border-radius:8px;position:relative;overflow:hidden}.feed-composer-photo:hover{border-color:var(--accent);transform:translateY(-2px)scale(1.03)}.feed-composer-photo img{object-fit:cover;width:100%;height:100%;display:block}.feed-composer-photo-remove{cursor:pointer;color:#fff;opacity:0;width:22px;height:22px;transition:opacity .18s ease, transform .18s var(--feed-ease), background .18s ease;background:#0009;border:none;border-radius:50%;font-size:.7rem;line-height:1;position:absolute;top:4px;right:4px;transform:scale(.8)}.feed-composer-photo:hover .feed-composer-photo-remove{opacity:1;transform:scale(1)}.feed-composer-photo-remove:hover{background:var(--danger)}@keyframes feed-pop{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:none}}.feed-composer-error,.feed-post-error{color:var(--danger);background:var(--danger-bg);border-radius:8px;margin-top:10px;padding:6px 10px;font-size:.82rem;animation:.36s both feed-shake}@keyframes feed-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.feed-composer-actions{border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:12px;padding-top:10px;display:flex}.feed-composer-submit{gap:8px;margin-left:auto;display:flex}.feed-post{padding:14px 0 6px}.feed-post>:not(.feed-collage):not(.feed-post-actions){padding-left:16px;padding-right:16px}.feed-post-header{align-items:center;gap:10px;display:flex}.feed-post-header .avatar-wrap{transition:transform .26s var(--feed-ease)}.feed-post:hover .feed-post-header .avatar-wrap{transform:scale(1.06)}.feed-post-ident{flex:1;min-width:0}.feed-post-author{color:var(--text-h);font-weight:700;transition:color .2s}.feed-post:hover .feed-post-author{color:var(--accent)}.feed-post-time{color:var(--text);opacity:.75;font-size:.78rem}.feed-post-edited{opacity:.8}.feed-post-body{white-space:pre-wrap;word-break:break-word;color:var(--text-h);margin-top:10px;line-height:1.55}.feed-post-edit textarea{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font-family:var(--sans);transition:border-color .2s ease, box-shadow .24s var(--feed-ease);border-radius:8px;margin-top:10px;padding:8px 10px}.feed-post-edit textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--feed-glow);outline:none}.feed-post-edit .feed-composer-submit{margin-top:8px}.feed-icon-btn{cursor:pointer;color:var(--text);width:32px;height:32px;transition:background .18s ease, color .18s ease, transform .22s var(--feed-ease);background:0 0;border:none;border-radius:50%;font-size:1.3rem;line-height:1}.feed-icon-btn:hover{background:var(--accent-bg);color:var(--accent);transform:rotate(90deg)}.feed-post-menu-wrap{position:relative}.feed-post-menu{z-index:30;background:var(--surface);border:1px solid var(--border);min-width:150px;box-shadow:var(--feed-lift-shadow);transform-origin:100% 0;animation:feed-menu-in .16s var(--feed-ease) both;border-radius:10px;padding:6px;position:absolute;top:100%;right:0}@keyframes feed-menu-in{0%{opacity:0;transform:scale(.92)translateY(-4px)}to{opacity:1;transform:none}}.feed-post-menu button{text-align:left;cursor:pointer;width:100%;color:var(--text);transition:background .15s ease, color .15s ease, padding-left .18s var(--feed-ease);background:0 0;border:none;border-radius:6px;padding:8px 10px;font-size:.88rem;display:block}.feed-post-menu button:hover{background:var(--accent-bg);color:var(--accent);padding-left:14px}.feed-post-menu .feed-menu-danger:hover{background:var(--danger-bg);color:var(--danger)}.feed-collage{background:var(--border);gap:2px;margin-top:12px;display:grid}.feed-collage-one{grid-template-columns:1fr}.feed-collage-two{grid-template-columns:1fr 1fr}.feed-collage-three{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.feed-collage-three .feed-collage-cell:first-child{grid-row:span 2}.feed-collage-four{grid-template-columns:1fr 1fr}.feed-collage-cell{cursor:pointer;background:var(--bg);border:none;min-height:0;padding:0;position:relative;overflow:hidden}.feed-collage-two .feed-collage-cell,.feed-collage-four .feed-collage-cell,.feed-collage-three .feed-collage-cell{aspect-ratio:1}.feed-collage-three .feed-collage-cell:first-child{aspect-ratio:auto}.feed-collage-img{object-fit:cover;width:100%;height:100%;transition:transform .45s var(--feed-ease), filter .3s ease;display:block}.feed-collage-cell:hover .feed-collage-img{filter:brightness(1.04);transform:scale(1.045)}.feed-collage-one .feed-collage-img{object-fit:contain;background:#000;max-height:560px}.feed-collage-one .feed-collage-cell:hover .feed-collage-img{transform:scale(1.02)}.feed-collage-more{color:#fff;transition:background .24s ease, font-size .24s var(--feed-ease);background:#00000080;justify-content:center;align-items:center;font-size:1.6rem;font-weight:700;display:flex;position:absolute;inset:0}.feed-collage-cell:hover .feed-collage-more{background:#00000061;font-size:1.8rem}.feed-photo-loading{background:linear-gradient(100deg, var(--bg) 30%, var(--accent-bg) 50%, var(--bg) 70%);background-size:260% 100%;width:100%;height:100%;min-height:180px;animation:1.5s ease-in-out infinite feed-shimmer}@keyframes feed-shimmer{0%{background-position:140% 0}to{background-position:-40% 0}}.feed-photo-missing{background:var(--bg);width:100%;min-height:120px;color:var(--text);opacity:.7;justify-content:center;align-items:center;font-size:.82rem;display:flex}.feed-lightbox{z-index:200;background:#000000e6;justify-content:center;align-items:center;animation:.2s both feed-fade;display:flex;position:fixed;inset:0}@keyframes feed-fade{0%{opacity:0}to{opacity:1}}.feed-lightbox-stage{max-width:92vw;max-height:88vh;animation:feed-zoom .26s var(--feed-ease) both;display:flex}@keyframes feed-zoom{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.feed-lightbox-img{object-fit:contain;max-width:92vw;max-height:88vh}.feed-lightbox-close,.feed-lightbox-nav{color:#fff;cursor:pointer;width:44px;height:44px;transition:background .2s ease, transform .22s var(--feed-ease);background:#ffffff1f;border:none;border-radius:50%;font-size:1.5rem;line-height:1;position:absolute}.feed-lightbox-close{font-size:1.1rem;top:18px;right:18px}.feed-lightbox-prev{left:18px}.feed-lightbox-next{right:18px}.feed-lightbox-close:hover{background:#ffffff47;transform:rotate(90deg)}.feed-lightbox-prev:hover{background:#ffffff47;transform:translate(-3px)scale(1.08)}.feed-lightbox-next:hover{background:#ffffff47;transform:translate(3px)scale(1.08)}.feed-lightbox-count{color:#fff;opacity:.8;font-size:.85rem;position:absolute;bottom:20px}.feed-post-stats{color:var(--text);justify-content:space-between;align-items:center;margin-top:10px;padding-bottom:8px;font-size:.82rem;display:flex}.feed-stat-reactions{cursor:default;align-items:center;gap:2px;display:flex}.feed-stat-emoji{background:var(--surface);border:1px solid var(--border);width:20px;height:20px;transition:transform .22s var(--feed-ease), margin-right .22s var(--feed-ease);border-radius:50%;justify-content:center;align-items:center;margin-right:-5px;font-size:.72rem;display:inline-flex}.feed-stat-reactions:hover .feed-stat-emoji{margin-right:-1px;transform:translateY(-2px)scale(1.12)}.feed-stat-count{opacity:.85;margin-left:10px}.feed-link-btn{cursor:pointer;color:var(--text);opacity:.85;font-size:.8rem;font-family:var(--sans);background:0 0;border:none;padding:0;transition:color .18s,opacity .18s}.feed-link-btn:hover{color:var(--accent);opacity:1;text-decoration:underline}.feed-post-actions{border-top:1px solid var(--border);margin:0 16px;padding:4px 0;display:flex}.feed-action-wrap{flex:1;display:flex;position:relative}.feed-action-btn{cursor:pointer;color:var(--text);font-size:.88rem;font-weight:600;font-family:var(--sans);transition:background .18s ease, color .18s ease, transform .14s var(--feed-ease);background:0 0;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:8px;padding:9px 10px;display:flex}.feed-action-btn:hover{background:var(--accent-bg);color:var(--accent)}.feed-action-btn:active{transform:scale(.96)}.feed-action-btn.is-active{font-weight:700}.feed-action-icon{transition:transform .26s var(--feed-ease);font-size:1.05rem}.feed-action-btn:hover .feed-action-icon{transform:translateY(-2px)scale(1.16)}.feed-action-btn.is-active .feed-action-icon{animation:2.4s ease-in-out infinite feed-beat}.feed-action-btn.is-active:hover .feed-action-icon{animation:none}@keyframes feed-beat{0%,88%,to{transform:none}92%{transform:scale(1.22)}96%{transform:scale(1.08)}}.feed-reaction-picker{z-index:40;background:var(--surface);border:1px solid var(--border);box-shadow:var(--feed-lift-shadow);transform-origin:0 100%;animation:feed-picker-in .2s var(--feed-ease) both;border-radius:999px;gap:2px;margin-bottom:8px;padding:6px;display:flex;position:absolute;bottom:100%;left:0}@keyframes feed-picker-in{0%{opacity:0;transform:scale(.8)translateY(8px)}to{opacity:1;transform:none}}.feed-reaction-option{cursor:pointer;transition:transform .18s var(--feed-ease);animation:feed-pop .26s var(--feed-ease) backwards;background:0 0;border:none;border-radius:50%;padding:4px 5px;font-size:1.5rem;line-height:1;position:relative}.feed-reaction-option:first-child{animation-delay:0s}.feed-reaction-option:nth-child(2){animation-delay:30ms}.feed-reaction-option:nth-child(3){animation-delay:60ms}.feed-reaction-option:nth-child(4){animation-delay:90ms}.feed-reaction-option:nth-child(5){animation-delay:.12s}.feed-reaction-option:nth-child(6){animation-delay:.15s}.feed-reaction-option:nth-child(7){animation-delay:.18s}.feed-reaction-option:hover{transform:translateY(-8px)scale(1.35)}.feed-reaction-option:active{transform:translateY(-4px)scale(1.1)}.feed-reaction-label{background:var(--text-h);color:var(--surface);opacity:0;pointer-events:none;white-space:nowrap;transition:opacity .16s ease, transform .16s var(--feed-ease);border-radius:999px;padding:2px 6px;font-size:.62rem;position:absolute;bottom:100%;left:50%;transform:translate(-50%,4px)}.feed-reaction-option:hover .feed-reaction-label{opacity:1;transform:translate(-50%,-2px)}.feed-comments{flex-direction:column;gap:10px;padding-top:10px;display:flex}.feed-view-more{align-self:flex-start;font-weight:600}.feed-comment{animation:feed-rise .26s var(--feed-ease) backwards;align-items:flex-start;gap:8px;display:flex}.feed-comment-body{min-width:0}.feed-comment-bubble{background:var(--bg);transition:background .2s ease, transform .22s var(--feed-ease);border-radius:16px;padding:8px 12px}.feed-comment:hover .feed-comment-bubble{background:var(--accent-bg);transform:translate(2px)}.feed-comment-author{color:var(--text-h);font-size:.82rem;font-weight:700}.feed-comment-text{color:var(--text);white-space:pre-wrap;word-break:break-word;font-size:.88rem}.feed-comment-meta{color:var(--text);opacity:0;gap:12px;padding:3px 12px 0;font-size:.72rem;transition:opacity .2s;display:flex}.feed-comment:hover .feed-comment-meta,.feed-comment:focus-within .feed-comment-meta{opacity:.8}.feed-comment-form{align-items:center;gap:8px;display:flex}.feed-comment-form input{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font-size:.88rem;font-family:var(--sans);transition:border-color .2s ease, box-shadow .24s var(--feed-ease);border-radius:999px;outline:none;flex:1;padding:9px 14px}.feed-comment-form input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--feed-glow)}.feed-comment-send{cursor:pointer;color:var(--accent);transition:transform .22s var(--feed-ease), opacity .2s ease;background:0 0;border:none;padding:4px 8px;font-size:1.1rem}.feed-comment-send:not(:disabled):hover{transform:translate(3px)scale(1.15)}.feed-comment-send:disabled{opacity:.35;cursor:default}.feed-empty{text-align:center;padding:40px 20px}.feed-empty-icon{font-size:2.4rem;animation:3.6s ease-in-out infinite feed-sway;display:inline-block}@keyframes feed-sway{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.feed-empty-title{color:var(--text-h);margin-top:8px;font-weight:700}.feed-empty-text{color:var(--text);opacity:.8;margin-top:4px;font-size:.88rem}.feed-load-more{transition:transform .22s var(--feed-ease), box-shadow .22s var(--feed-ease);align-self:center}.feed-load-more:hover{box-shadow:0 0 0 4px var(--feed-glow);transform:translateY(-2px)}@media (width<=1180px){.feed-layout{grid-template-columns:240px minmax(0,640px)}.feed-rail-right{display:none}}@media (width<=900px){.feed-layout{grid-template-columns:minmax(0,1fr);padding:0 0 32px}.feed-rail-left{display:none}}@media (prefers-reduced-motion:reduce){.feed-card,.feed-card:before,.feed-post,.feed-comment,.feed-shortcut,.feed-shortcut-icon,.feed-action-btn,.feed-action-icon,.feed-action-btn.is-active .feed-action-icon,.feed-reaction-option,.feed-reaction-picker,.feed-reaction-label,.feed-collage-img,.feed-composer-photo,.feed-composer-photo-remove,.feed-comment-bubble,.feed-comment-send,.feed-icon-btn,.feed-post-menu,.feed-lightbox,.feed-lightbox-stage,.feed-lightbox-close,.feed-lightbox-nav,.feed-photo-loading,.feed-empty-icon,.feed-load-more,.feed-profile .avatar-wrap,.feed-post-header .avatar-wrap,.feed-stat-emoji,.feed-composer-error,.feed-post-error{transition:none;animation:none}.feed-card:hover,.feed-shortcut:hover,.feed-comment:hover .feed-comment-bubble,.feed-load-more:hover{transform:none}.feed-comment-meta{opacity:.8}}.feed-focus{flex-direction:column;gap:6px;display:flex}.feed-focus-bar{color:var(--accent);background:var(--accent-bg);border-radius:999px;justify-content:space-between;align-items:center;gap:12px;padding:5px 14px;font-size:.78rem;display:flex}.feed-focus .feed-post{border-color:var(--accent);box-shadow:0 0 0 3px var(--feed-glow), var(--shadow)}.feed-focus .feed-card:before{opacity:1;transform:scaleX(1)}
