:root{--bg:#f4f6f9;--surface:#fff;--border:#e4e7ec;--text:#1b2330;--text-muted:#6b7280;--primary:#2f6feb;--primary-dark:#2557c4;--primary-light:#eaf1ff;--green:#12b76a;--green-light:#e7f9ef;--amber:#f59e0b;--amber-light:#fef3e0;--red:#ef4444;--red-light:#fde8e8;--gray:#9aa2b1;--gray-light:#eef0f3;--radius:10px;--shadow:0 1px 2px #1018280d, 0 1px 3px #1018280f}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px}button{cursor:pointer;font-family:inherit}input,select,textarea,button{font-family:inherit;font-size:14px}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;padding:20px 14px;display:flex}.sidebar-logo{border-bottom:1px solid var(--border);flex-direction:column;align-items:center;gap:8px;margin-bottom:14px;padding:6px 8px 20px;display:flex}.sidebar-logo-img{width:100%;max-width:140px;height:auto;display:block}.sidebar-logo-text{color:var(--text-muted);letter-spacing:.06em;font-size:21px;font-weight:700}.nav-item{color:var(--text-muted);border-radius:8px;align-items:center;gap:10px;margin-bottom:2px;padding:10px 12px;font-weight:500;display:flex}.nav-item:hover{background:var(--gray-light);color:var(--text)}.nav-item.active{background:var(--primary-light);color:var(--primary-dark)}.sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:14px}.logout-btn{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-muted);border-radius:8px;padding:9px 12px;font-weight:500}.logout-btn:hover{background:var(--gray-light)}.main{flex:1;max-width:1100px;padding:28px 36px}.page-header{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.page-title{margin:0;font-size:22px;font-weight:700}.page-subtitle{color:var(--text-muted);margin-top:4px;font-size:13px}.btn{white-space:nowrap;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13.5px;font-weight:600;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-secondary:hover{background:var(--gray-light)}.btn-ghost{color:var(--text-muted);background:0 0;padding:6px 8px}.btn-ghost:hover{background:var(--gray-light);color:var(--text)}.btn-danger{background:var(--red-light);color:var(--red)}.btn-danger:hover{background:#fbd5d5}.btn-sm{padding:5px 9px;font-size:12.5px}.btn-icon{padding:5px 7px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:18px 20px}.login-page{background:linear-gradient(160deg,#eaf1ff 0%,#f4f6f9 60%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{width:360px;padding:32px 28px}.login-card h1{margin:0 0 4px;font-size:19px}.login-card p.subtitle{color:var(--text-muted);margin:0 0 22px;font-size:13px}.field{margin-bottom:14px}.field label{color:var(--text-muted);margin-bottom:5px;font-size:12.5px;font-weight:600;display:block}.field input,.field select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:8px;padding:9px 11px}.field input:focus,.field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.error-text{color:var(--red);margin:8px 0;font-size:13px}.stat-row{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;display:grid}.stat-card{padding:14px 16px}.stat-value{font-size:22px;font-weight:800}.stat-label{color:var(--text-muted);margin-top:2px;font-size:12.5px}.project-grid{gap:12px;display:grid}.project-card{padding:0;overflow:visible}.project-row{justify-content:space-between;align-items:center;gap:12px;padding:18px 18px 14px;display:flex}.project-row-main{flex:1}.project-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.project-name{font-size:21px;font-weight:700}.project-address{color:var(--text-muted);margin-top:3px;font-size:13px}.progress-bar{background:var(--gray-light);border-radius:4px;width:140px;height:6px;overflow:hidden}.progress-fill{background:var(--green);height:100%}.badge{border-radius:100px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge-not_started{background:var(--gray-light);color:var(--gray)}.badge-in_progress{background:var(--primary-light);color:var(--primary-dark)}.badge-done{background:var(--green-light);color:var(--green)}.badge-overdue{background:var(--red-light);color:var(--red)}.project-preview{padding:2px 18px 14px}.chip{white-space:nowrap;border-radius:100px;align-items:center;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.chip-item{background:var(--surface);border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:5px 10px 6px}.chip-item-name{color:var(--text);font-size:12.5px;font-weight:600}.chip-item-status{color:var(--text-muted);font-size:11.5px;font-weight:500}.chip-more{color:var(--gray);background:0 0;padding:3px 2px;font-weight:600}.chip-input{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;padding:7px 12px;font-size:12.5px}.chip-input:focus{border-color:var(--primary);outline:none}.zone-barrels{flex-direction:column;gap:10px;display:flex}.zone-barrel{background:var(--primary-light);cursor:pointer;border:1px solid #0000;border-radius:22px;padding:12px 20px;transition:background .15s,border-color .15s}.zone-barrel:hover{background:#dce8ff}.zone-barrel-active{border-color:var(--primary);background:#dce8ff}.zone-barrel-title{color:var(--primary-dark);align-items:center;gap:6px;margin-bottom:8px;font-size:13px;font-weight:700;display:flex}.zone-barrel-chevron{color:var(--primary);font-size:16px;line-height:1;transition:transform .2s;display:inline-block}.zone-barrel-chevron.open{transform:rotate(90deg)}.zone-barrel-items{flex-wrap:wrap;gap:6px;display:flex}.zone-barrel-add{color:var(--text-muted);border:1px dashed var(--border);cursor:pointer;text-align:center;background:0 0;border-radius:22px;padding:10px 20px;font-size:12.5px;font-weight:600}.zone-barrel-add:hover{background:var(--gray-light);color:var(--text);border-color:var(--gray)}.zone-barrel-add-form{background:var(--surface);border:1px solid var(--border);cursor:default;border-radius:22px;padding:12px 20px}.zone-barrel-add-actions{gap:6px;margin-top:8px;display:flex}.expand-wrapper{grid-template-rows:0fr;transition:grid-template-rows .32s cubic-bezier(.4,0,.2,1);display:grid}.expand-wrapper.open{grid-template-rows:1fr}.expand-inner{overflow:hidden}.expand-content{border-top:1px solid var(--border);padding:18px 18px 20px}.zone-expand-list{flex-direction:column;display:flex}.zone-expand-content{padding:14px 18px 18px}.zone-block{margin-bottom:16px}.zone-header{background:var(--surface);border:1px solid var(--border);border-radius:10px 10px 0 0;align-items:center;gap:10px;padding:12px 16px;font-weight:700;display:flex}.zone-body{border:1px solid var(--border);background:var(--surface);border-top:none;border-radius:0 0 10px 10px;padding:10px 16px 16px}.item-block{border:1px solid var(--border);border-radius:8px;margin-top:10px;overflow:hidden}.item-header{background:var(--gray-light);align-items:center;gap:8px;padding:9px 12px;font-size:13.5px;font-weight:600;display:flex}.works-table{border-collapse:collapse;width:100%}.works-table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:8px 10px;font-size:11.5px}.works-table td{border-bottom:1px solid var(--gray-light);vertical-align:middle;padding:7px 10px;font-size:13.5px}.works-table tr:last-child td{border-bottom:none}.works-table input,.works-table select{background:0 0;border:1px solid #0000;border-radius:6px;width:100%;padding:5px 6px}.works-table input:hover,.works-table select:hover{background:var(--gray-light)}.works-table input:focus,.works-table select:focus{border-color:var(--primary);background:var(--surface);outline:none}.row-actions{gap:2px;display:flex}.inline-add-row{gap:8px;padding:10px 4px 2px;display:flex}.inline-add-row input{flex:1}.empty-state{text-align:center;color:var(--text-muted);padding:50px 20px}.breadcrumb{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:flex}.breadcrumb a:hover{color:var(--primary)}.modal-overlay{z-index:50;background:#10182859;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{width:420px;padding:24px}.modal-box h2{margin:0 0 16px;font-size:17px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.checkbox-row{color:var(--text-muted);align-items:center;gap:8px;font-size:13.5px;display:flex}.section-title{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin:22px 0 10px;font-size:13px;font-weight:700}.template-list{flex-direction:column;gap:6px;display:flex}.template-row{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.template-row input{background:0 0;border:none;flex:1}.template-row input:focus{outline:none}@media (width<=800px){.app-shell{flex-direction:column}.sidebar{flex-direction:row;width:100%;overflow-x:auto}.sidebar-footer{display:none}.main{padding:18px}.stat-row{grid-template-columns:repeat(2,1fr)}}
