:root{--ink:#172033;--muted:#667086;--line:#d9dfeb;--paper:#f5f7fb;--panel:#fff;--navy:#293883;--navy-dark:#16245d;--blue-soft:#e8ecff;--blue-light:#f3f5ff;--amber:#c47a22;--red:#b94a48;--blue:#293883;--shadow:0 18px 45px #16245d1f}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--navy-dark);color:#fff;padding:24px 18px}.brand{justify-items:start;gap:10px;margin-bottom:32px;display:grid}.brand-logo{background:#fff;border-radius:8px;width:118px;height:auto;padding:7px;display:block;box-shadow:0 10px 24px #00000024}.brand-title{color:#fff;letter-spacing:.08em;text-transform:uppercase;font-size:1rem}.phone-head small{color:#ffffffb8;margin-top:2px;display:block}.nav{gap:8px;display:grid}.nav-item{color:#ffffffc7;text-align:left;background:0 0;border:0;border-radius:8px;padding:12px 14px}.nav-item.active,.nav-item:hover{color:#fff;background:#ffffff1f}.workspace{min-width:0;padding:28px}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.eyebrow{color:var(--blue);text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:700}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:2rem}h2{margin-bottom:16px;font-size:1.05rem}h3{margin-bottom:6px;font-size:.96rem}.top-actions,.panel-head,.filters,.action-row{align-items:center;gap:10px;display:flex}.primary-button,.secondary-button,.danger-button,.icon-button,.chip{border:0;border-radius:8px}.primary-button{background:var(--navy);color:#fff;padding:11px 16px;font-weight:750}.secondary-button{background:var(--blue-soft);color:var(--ink);padding:11px 16px;font-weight:700}.danger-button{color:#9e2e29;background:#fff1f0;border:1px solid #e5b5b1;border-radius:8px;padding:10px 15px;font-weight:700}.danger-button:hover:not(:disabled){background:#fde3e1}.table-action{padding:7px 11px}.assignment-stack{gap:6px;display:grid}.ticket-link{color:var(--navy);text-align:left;background:0 0;border:0;gap:2px;padding:0;display:grid}.ticket-link strong{font-size:.86rem}.ticket-link span{color:var(--muted);font-size:.78rem}.ticket-link:hover strong{text-decoration:underline}.member-detail h3{margin:20px 0 10px;font-size:.94rem}.member-assignments{background:var(--blue-light);border-radius:8px;margin-bottom:18px;padding:12px}.icon-button{border:1px solid var(--line);background:#fff;width:42px;height:42px}.full{width:100%}.view{display:none}.view.active{display:block}.content-grid,.ticket-layout{grid-template-columns:1fr 340px;gap:18px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:20px}.wide{grid-row:span 2}.dashboard-side{align-content:start;gap:18px;display:grid}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.stats article{border:1px solid var(--line);background:#fff;border-radius:8px;padding:18px}.stats strong{font-size:1.8rem;display:block}.stats span,.muted{color:var(--muted)}.panel-head{justify-content:space-between;margin-bottom:12px}.search-box{margin-bottom:14px}.call-log-head{align-items:flex-start}.call-log-toolbar{gap:12px;margin-bottom:14px;display:grid}.import-button{cursor:pointer;position:relative}.import-button input{opacity:0;width:1px;height:1px;position:absolute}.chip{background:var(--blue-light);color:var(--muted);padding:7px 10px}.chip.active{background:var(--blue-soft);color:var(--navy);font-weight:700}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:14px 10px}th{color:var(--muted);font-size:.82rem}tbody tr{cursor:pointer}tbody tr:hover{background:var(--blue-light)}tbody tr.selected-row{background:var(--blue-soft)}.status{border-radius:999px;align-items:center;min-height:26px;padding:4px 10px;font-size:.78rem;font-weight:800;display:inline-flex}.status.review{color:var(--amber);background:#fff0dc}.status.assigned{background:var(--blue-soft);color:var(--blue)}.status.new{color:var(--muted);background:#edf2ef}.status.progress{background:var(--blue-light);color:var(--navy)}.status.closed{color:#176b3a;background:#e6f6ed}.clean-list,.step-list{color:var(--muted);margin:0;padding-left:18px;line-height:1.55}.clean-list li+li,.step-list li+li{margin-top:10px}.metric-list,.summary-stack{gap:10px;display:grid}.metric-list div,.summary-stack div{border:1px solid var(--line);background:#fbfcff;border-radius:8px;justify-content:space-between;gap:16px;padding:12px;display:flex}.metric-list span,.summary-stack span{color:var(--muted)}.metric-list strong,.summary-stack strong{color:var(--ink)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid.single{grid-template-columns:1fr}.form-grid.single .span-2{grid-column:span 1}.request-type{border:0;gap:8px;margin:0;padding:0;display:flex}.request-type legend{color:var(--muted);margin-bottom:6px;font-size:.86rem;font-weight:700}.request-type label{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:8px;padding:10px 14px;display:flex}.request-type label.active{background:var(--blue-soft);border-color:var(--navy);color:var(--navy)}.request-type input{width:16px}.equipment-editor{background:var(--blue-light);border:1px solid var(--line);border-radius:8px;padding:14px}.equipment-editor h3{margin:0}.equipment-row{grid-template-columns:1fr 1.45fr .8fr auto;align-items:end;gap:10px;margin-top:12px;display:grid}.remove-equipment{margin-bottom:1px}.invoice-import{border:1px solid var(--line);background:#fbfcff;border-radius:8px;padding:14px}.invoice-import h3,.invoice-import .note{margin:0}.invoice-upload{cursor:pointer;position:relative}.invoice-upload input{opacity:0;width:1px;height:1px;position:absolute}.invoice-results{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.invoice-meta,.invoice-match-list div,.invoice-attachment{justify-content:space-between;align-items:center;gap:12px;display:flex}.invoice-meta span,.invoice-match-list span,.invoice-attachment span{color:var(--muted);font-size:.84rem;display:block}.invoice-match-list{gap:7px;margin-top:12px;display:grid}.invoice-match-list div{background:var(--blue-light);border-radius:8px;padding:9px 11px}.invoice-result-card+.invoice-result-card{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.invoice-unmatched{border-left:3px solid #d48c21;margin-top:12px;padding:4px 0 4px 12px}.invoice-unmatched p{color:var(--muted);margin:6px 0 0;font-size:.84rem;line-height:1.45}.invoice-attachment{background:var(--blue-light);border-radius:8px;margin:12px 0 24px;padding:12px 14px}.compact-form{gap:12px;display:grid}.span-2{grid-column:span 2}label{color:var(--muted);gap:6px;font-size:.86rem;font-weight:700;display:grid}.service-match-note{color:var(--muted);font-size:.76rem;font-weight:500;line-height:1.4}.service-match-note.matched{color:#26734d}.service-match-note.error{color:var(--red)}.check-row{width:fit-content;color:var(--ink);background:var(--blue-light);border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.check-row input{width:16px;height:16px}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:11px 12px}textarea{resize:vertical;min-height:86px}.ticket-title{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.detail-grid div{background:var(--blue-light);border-radius:8px;padding:13px}.detail-grid span{color:var(--muted);margin-bottom:6px;font-size:.78rem;display:block}.ticket-equipment-list{gap:8px;margin-bottom:24px;display:grid}.ticket-equipment-list div{background:var(--blue-light);border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:11px 13px;display:flex}.ticket-equipment-list span{color:var(--muted);font-size:.82rem}.compact-list{margin-bottom:16px}.report-strip{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}.manager-report-form{background:var(--blue-light);border:1px solid var(--line);border-radius:8px;margin:14px 0 20px;padding:14px}.manager-report-form .note{margin:0}.photo-tile{min-height:150px;color:var(--ink);background:linear-gradient(135deg,#1f8a9a38,#f2c45d47),#e9efec;border-radius:8px;place-items:center;font-weight:800;display:grid;position:relative;overflow:hidden}.photo-tile img{object-fit:cover;width:100%;height:170px}.photo-preview-button{background:0 0;border:0;width:100%;padding:0;display:block}.photo-tile span{color:var(--ink);background:#ffffffe6;border-radius:999px;padding:4px 8px;font-size:.76rem;position:absolute;bottom:8px;left:8px}.photo-download{color:var(--navy);background:#ffffffeb;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:800;text-decoration:none;position:absolute;bottom:8px;right:8px}.photo-modal{z-index:50;background:#0a101cb8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.photo-modal-content{background:#fff;border-radius:12px;max-width:min(1100px,96vw);max-height:94vh;padding:14px;overflow:auto}.photo-modal-actions{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.photo-modal-content img{object-fit:contain;width:100%;height:auto;max-height:78vh;display:block}.attachment-list{gap:12px;margin:0 0 16px;display:grid}.attachment-tile{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(180px,280px) 1fr;align-items:center;gap:12px;padding:10px;display:grid}.attachment-tile video,.attachment-tile .installation-file-preview img{object-fit:cover;background:#111;border-radius:6px;width:100%;max-height:180px}.attachment-tile .installation-file-preview{width:100%}.attachment-tile .file-preview{background:var(--blue-light);border:1px solid var(--line);color:var(--blue);border-radius:6px;justify-content:center;align-items:center;height:110px;font-weight:700;display:flex}.attachment-tile div{gap:4px;display:grid}.attachment-tile span{color:var(--muted);font-size:.84rem}.note{color:var(--muted);line-height:1.55}.review-box{margin:18px 0}.edit-ticket-actions{justify-content:flex-end;margin:-10px 0 20px;display:flex}.edit-ticket-button{min-width:124px;font-weight:700;box-shadow:0 5px 12px #16245d33}.edit-ticket-form{border:1px solid var(--line);background:var(--blue-light);border-radius:8px;margin-bottom:24px;padding:16px}.activity{gap:18px;margin:0;padding:0;list-style:none;display:grid}.activity li{border-left:3px solid var(--navy);padding-left:12px}.activity span{color:var(--muted);margin-top:4px;display:block}.phone-stage{grid-template-columns:380px 1fr;align-items:start;gap:24px;display:grid}.phone{width:min(100%,380px);min-height:720px;box-shadow:var(--shadow);background:#101817;border-radius:28px;padding:16px}.phone-head{color:#fff;justify-content:space-between;align-items:center;padding:14px 10px 20px;display:flex}.phone-head span{background:#ffffff1f;border-radius:999px;padding:7px 10px}.job-card,.simple-report{background:#fff;border-radius:16px;margin-bottom:14px;padding:18px}.job-card p{color:var(--muted);line-height:1.45}.job-meta{color:var(--muted);justify-content:space-between;margin:18px 0;display:flex}.big-options{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;display:grid}.big-options button,.upload{border:1px solid var(--line);background:#f6f8f7;border-radius:8px;padding:12px;font-weight:750}.big-options .selected{color:var(--navy);background:#d9ece6;border-color:#c8d0ff}.upload{width:100%;color:var(--blue);margin-bottom:10px}.product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.product-card{border:1px solid var(--line);background:#fbfcff;border-radius:8px;padding:16px}.product-card h3{margin-bottom:10px}.tag-row{flex-wrap:wrap;gap:8px;display:flex}.tag{background:var(--blue-soft);color:var(--muted);border-radius:999px;padding:5px 8px;font-size:.78rem;font-weight:700}.donut{background:conic-gradient(var(--navy) 0 68%, #e9efec 68% 100%);border-radius:50%;place-items:center;width:170px;height:170px;margin:4px auto 16px;display:grid}.donut.empty{background:conic-gradient(#e9efec 0 100%)}.donut span{background:#fff;border-radius:50%;place-items:center;width:108px;height:108px;font-size:1.4rem;font-weight:800;display:grid}.empty-state,.report-empty{min-height:130px;color:var(--muted);text-align:center;background:var(--blue-light);border:1px dashed var(--line);border-radius:8px;place-items:center;padding:20px;display:grid}.reports-grid{grid-template-columns:minmax(0,1fr) 310px}.reports-register{min-width:0}.reports-side{align-content:start;gap:18px;display:grid}.report-toolbar{grid-template-columns:minmax(240px,1fr) 180px;align-items:end;gap:12px;margin-bottom:12px;display:grid}.report-toolbar .search-box{margin-bottom:0}.report-table-wrap{overflow-x:auto}.report-table-wrap table{min-width:880px}.report-trend{gap:12px;display:grid}.report-trend>div{grid-template-columns:34px minmax(0,1fr) 28px;align-items:center;gap:9px;display:grid}.report-trend span,.report-trend strong{font-size:.78rem}.report-trend strong{text-align:right}.report-trend div div{background:var(--blue-light);border-radius:999px;height:9px;overflow:hidden}.report-trend i{border-radius:inherit;background:var(--blue);height:100%;display:block}.photo-tile.empty{background:var(--blue-light);border:1px dashed var(--line);color:var(--muted)}.bar-chart{grid-template-columns:repeat(5,1fr);align-items:end;gap:16px;height:360px;padding-top:30px;display:grid}.bar-chart div{background:linear-gradient(180deg, var(--navy), var(--navy-dark));color:#fff;border-radius:8px 8px 0 0;justify-content:center;align-items:end;min-height:40px;padding:10px 5px;font-weight:800;display:flex}.toast{opacity:0;pointer-events:none;background:var(--navy-dark);color:#fff;box-shadow:var(--shadow);border-radius:8px;padding:12px 16px;transition:all .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.login-screen{background:var(--paper);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{border:1px solid var(--line);width:min(100%,390px);box-shadow:var(--shadow);background:#fff;border-radius:8px;padding:24px}.login-brand{color:var(--ink);margin-bottom:20px}.login-brand .brand-title{color:var(--navy)}.login-message{color:var(--muted);border:1px solid var(--line);background:#f3f7f5;border-radius:8px;margin-bottom:16px;padding:12px;line-height:1.5}.tech-shell{background:var(--paper);min-height:100vh;padding:22px}.tech-header{justify-content:space-between;align-items:end;gap:18px;max-width:1180px;margin:0 auto 18px;display:flex}.tech-header .brand-title{color:var(--navy)}.tech-login{grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:12px;display:grid}.tech-grid{grid-template-columns:340px 1fr;gap:18px;max-width:1180px;margin:0 auto;display:grid}.tech-job-list{gap:10px;display:grid}.tech-job{border:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:#fbfcff;border-radius:8px;gap:5px;padding:12px;display:grid}.tech-job.active,.tech-job:hover{background:var(--blue-light);border-color:#c8d0ff}.tech-job span,.tech-job small{color:var(--muted)}@media (max-width:1100px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:2;padding:14px;position:sticky;top:0}.brand{margin-bottom:12px}.nav{grid-auto-flow:column;overflow-x:auto}.nav-item{white-space:nowrap}.content-grid,.ticket-layout,.phone-stage,.tech-grid,.report-toolbar{grid-template-columns:1fr}.stats,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.workspace{padding:18px}.topbar,.tech-header,.panel-head,.ticket-title{flex-direction:column;align-items:stretch}.top-actions,.tech-login,.filters,.action-row{flex-wrap:wrap;grid-template-columns:1fr}.stats,.detail-grid,.report-strip,.attachment-tile,.form-grid,.product-grid,.equipment-row{grid-template-columns:1fr}.request-type{flex-wrap:wrap}.invoice-meta,.invoice-attachment{flex-direction:column;align-items:stretch}.span-2{grid-column:auto}table{display:block;overflow-x:auto}}

