*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f0f14;--surf: #17171f;--card: #1e1e28;--border: rgba(255,255,255,.08);--text: #f0f0f5;--muted: #8888aa;--hint: #55556a;--accent: rgba(167,139,250,.85);--radius: 12px;--radius-sm: 8px}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}.app-wrap{min-height:100vh}.app-body{max-width:900px;margin:0 auto;padding:28px 24px 0}.app-header{background:var(--surf);border-bottom:1px solid var(--border);padding:20px 28px 0}.header-top{display:flex;align-items:center;gap:12px;margin-bottom:16px}.header-brand{display:flex;align-items:center;gap:12px}.header-icon{font-size:26px}.header-title{font-size:22px;font-weight:500}.header-sub{font-size:14px;color:var(--muted);margin-top:2px}.district-pills{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}.district-pill{font-size:12px;padding:4px 12px;border-radius:20px;font-weight:500}.tab-nav{display:flex}.tab-btn{padding:10px 22px;font-size:15px;font-weight:400;border:none;background:transparent;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;transition:all .15s}.tab-btn.active{font-weight:500;border-bottom-color:#a78bfa;color:var(--text)}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;margin-bottom:18px}.card{background:var(--surf);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}input,select,textarea{font-size:15px;padding:12px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surf);color:var(--text);outline:none;width:100%;font-family:inherit}input:focus,select:focus,textarea:focus{border-color:#a78bfa}textarea{resize:vertical}.btn-primary{padding:12px 22px;border-radius:var(--radius-sm);border:none;background:var(--accent);color:#fff;font-weight:500;cursor:pointer;font-size:15px;white-space:nowrap;transition:opacity .15s}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-size:13px}.sec-hdr{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:transparent;border:none;cursor:pointer;text-align:left}.sec-title{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.sec-body{padding:0 18px 18px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.metric-card{background:var(--card);border-radius:var(--radius-sm);padding:12px 16px;border:1px solid var(--border)}.metric-label{font-size:13px;color:var(--muted);margin-bottom:4px}.metric-val{font-size:20px;font-weight:500}table{width:100%;border-collapse:collapse}th{padding:12px 14px;text-align:left;color:var(--muted);font-weight:500;border-bottom:1px solid var(--border);background:var(--card);font-size:14px}td{padding:12px 14px;border-bottom:1px solid var(--border);font-size:14px}tr:hover td{background:#ffffff05}.tag{font-size:12px;padding:3px 10px;border-radius:20px;display:inline-block}.spinner{width:38px;height:38px;border:3px solid var(--border);border-top-color:#a78bfa;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{to{transform:rotate(360deg)}}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:32px;text-align:center;cursor:pointer;transition:border-color .2s}.upload-zone:hover{border-color:#a78bfa}.progress-track{background:var(--surf);border-radius:99px;height:5px;overflow:hidden;flex:1}.progress-fill{height:100%;background:#a78bfa;border-radius:99px;transition:width .3s}.photo-strip{display:flex;gap:10px;margin-bottom:16px}.photo-item{flex:1;height:160px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.photo-item img{width:100%;height:100%;object-fit:cover}.photo-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--hint);font-size:13px;background:var(--card)}.label-upper{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:10px;display:block}.row{display:flex;gap:10px}.muted{color:var(--muted)}.hint{color:var(--hint)}
