:root{--bg: #F5F0E8;--card-bg: #FDFBF7;--card-border: #D4C9B8;--header-bg: #1B2D45;--accent: #8B6914;--cta: #C4622D;--text: #2C2C2C;--text-muted: #6B6560;--success: #5A7A5A;--danger: #A63D40;--warning: #D4A017;--radius: 2px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}h1,h2,h3,h4{font-family:"DM Serif Display",serif;font-weight:400}.mono{font-family:JetBrains Mono,monospace}header{background:var(--header-bg);border-bottom:3px solid var(--accent);padding:24px 32px;color:#fff}header h1{font-size:28px;letter-spacing:-.5px}header p{color:#a0aec0;font-size:14px;margin-top:4px}footer{background:var(--header-bg);border-top:3px solid var(--accent);padding:16px 32px;color:#a0aec0;font-size:13px;text-align:center;margin-top:48px}.container{max-width:1280px;margin:0 auto;padding:24px 32px}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.stat-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);padding:20px}.stat-card .label{font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.stat-card .value{font-family:JetBrains Mono,monospace;font-size:32px;font-weight:600;color:var(--accent);margin-top:4px}.stat-card .sub{font-size:12px;color:var(--text-muted);margin-top:2px}.section-title{font-size:22px;margin-bottom:16px;color:var(--text);border-bottom:2px solid var(--accent);padding-bottom:8px;display:inline-block}.section-sub{font-size:13px;color:var(--text-muted);margin:-8px 0 16px}.mill-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:40px}.mill-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,box-shadow .15s}.mill-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #8b691426}.region-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media(max-width:768px){.region-cards{grid-template-columns:1fr}}.region-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);padding:24px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;text-align:center}.region-card:hover{border-color:var(--accent);box-shadow:0 4px 12px #8b691433;transform:translateY(-2px)}.region-card-name{font-family:var(--font-display);font-size:22px;color:var(--text);margin-bottom:8px}.region-card-stats{font-size:13px;color:var(--text-muted);display:flex;justify-content:center;gap:6px}.region-card-dot{color:var(--accent)}.region-card-empty{margin-top:8px;font-size:12px;color:var(--text-muted);font-style:italic}.mill-card-header{padding:20px;display:flex;justify-content:space-between;align-items:flex-start}.mill-name{font-size:18px}.mill-location{font-size:13px;color:var(--text-muted);margin-top:2px}.mill-freq{font-size:12px;color:var(--text);margin-top:6px;font-weight:500}.card-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.unit-count{font-size:12px;color:var(--text-muted)}.unit-tags{display:flex;flex-wrap:wrap;gap:6px}.unit-tag{font-size:11px;padding:2px 10px;border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius);font-weight:500;background:#8b69140d}.badge,.freq-badge{display:inline-block;padding:3px 12px;border-radius:var(--radius);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.badge-high{background:#e8f5e9;color:var(--success);border:1px solid var(--success)}.badge-medium{background:#fff8e1;color:var(--warning);border:1px solid var(--warning)}.back-btn{background:none;border:1px solid var(--card-border);border-radius:var(--radius);padding:6px 16px;cursor:pointer;font-size:13px;color:var(--text-muted);margin-bottom:16px;transition:all .15s}.back-btn:hover{border-color:var(--accent);color:var(--accent)}.detail-header{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);padding:24px;margin-bottom:20px}.detail-header h2{font-size:28px;margin-bottom:8px}.detail-meta{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.detail-location{font-size:14px;color:var(--text-muted)}.tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:2px solid var(--card-border)}.tab{padding:10px 24px;background:none;border:none;cursor:pointer;font-size:14px;font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.unit-block{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}.unit-heading{font-size:14px;color:#fff;background:var(--header-bg);padding:10px 16px;border-bottom:2px solid var(--accent)}.table-scroll{overflow-x:auto}.materials-table{width:100%;border-collapse:collapse;font-size:13px;min-width:700px}.materials-table thead th{padding:8px 12px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--card-border);font-weight:600;white-space:nowrap}.col-mat{width:28%}.col-sample{width:70px;text-align:center!important}.col-field{width:10%}.col-remarks{width:22%}.col-buyers{width:20%}.materials-table tbody td{padding:6px 12px;border-bottom:1px solid #eee}.materials-table tbody tr:last-child td{border-bottom:none}.materials-table tbody tr:hover{background:#8b691408}.mat-name{font-weight:500}.cell-input{width:100%;border:1px solid var(--card-border);border-radius:var(--radius);padding:3px 8px;font-size:12px;font-family:Inter,sans-serif;background:#fff;transition:border-color .15s}.cell-input:focus{outline:none;border-color:var(--accent)}.cell-input::placeholder{color:#ccc}.sample-btn{padding:2px 14px;border-radius:var(--radius);font-size:11px;font-weight:700;cursor:pointer;border:1px solid;transition:all .15s}.sample-btn.yes{background:#e8f5e9;color:var(--success);border-color:var(--success)}.sample-btn.no{background:#fbe9e7;color:var(--danger);border-color:var(--danger)}.sample-btn:hover{opacity:.8}.notes-box{margin-top:20px;background:#8b69140f;border:1px solid rgba(139,105,20,.2);border-radius:var(--radius);padding:14px 18px}.note-item{font-size:13px;color:var(--text);padding:2px 0}.matrix-wrap{overflow-x:auto;margin-bottom:40px}.matrix-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--card-bg);border:1px solid var(--card-border)}.matrix-table th{background:var(--header-bg);color:#fff;padding:10px 12px;text-align:left;font-weight:500;font-size:12px;white-space:nowrap}.matrix-table td{padding:8px 12px;border-bottom:1px solid #eee}.matrix-table tr:last-child td{border-bottom:none}.matrix-table td:first-child{font-weight:500}.check{color:var(--success);font-weight:700}.dash{color:#ddd}.freq-chart{margin-bottom:40px}.chart-grid{display:grid;grid-template-columns:100px 1fr;gap:4px 12px;align-items:center;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);padding:20px}.chart-label{font-size:12px;color:var(--text-muted);text-align:right;font-family:JetBrains Mono,monospace}.chart-bars{display:flex;gap:3px;align-items:flex-end;height:28px}.chart-bar{width:20px;border-radius:1px 1px 0 0;position:relative;min-height:2px}.chart-bar .tip{display:none;position:absolute;top:-20px;left:50%;transform:translate(-50%);font-size:10px;font-family:JetBrains Mono,monospace;background:var(--header-bg);color:#fff;padding:1px 5px;border-radius:var(--radius);white-space:nowrap}.chart-bar:hover .tip{display:block}.chart-legend{display:flex;gap:16px;margin-top:12px}.chart-legend span{font-size:12px;display:flex;align-items:center;gap:4px}.legend-dot{width:10px;height:10px;border-radius:1px;display:inline-block}.price-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--card-bg);border:1px solid var(--card-border);margin-bottom:40px}.price-table th{background:var(--header-bg);color:#fff;padding:10px 12px;text-align:left;font-weight:500;font-size:12px}.price-table td{padding:8px 12px;border-bottom:1px solid #eee}@media(max-width:768px){.stats-row{grid-template-columns:repeat(2,1fr)}.mill-cards{grid-template-columns:1fr}header{padding:16px}.container{padding:16px}.detail-header h2{font-size:22px}.price-modal{width:95vw;max-height:90vh;padding:16px}.form-row{flex-direction:column}}.col-price{width:120px}.price-cell{text-align:center}.price-spark{display:flex;flex-direction:column;align-items:center;gap:1px}.price-last{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;color:var(--accent)}.pp-tag{font-size:9px;font-weight:700;color:var(--danger);background:#fbe9e7;padding:0 4px;border-radius:var(--radius)}.trend-arrow{font-size:11px;font-weight:700}.trend-up{color:var(--danger)}.trend-down{color:var(--success)}.price-count{font-size:10px;color:var(--text-muted)}.price-empty{color:#ccc;font-size:12px}.price-dot{color:var(--accent);font-size:8px;margin-left:4px;vertical-align:middle}.has-price{color:var(--accent)}.has-price:hover{text-decoration:underline}.modal-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.price-modal{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);width:680px;max-height:85vh;overflow-y:auto;padding:24px;box-shadow:0 12px 40px #00000040}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.modal-header h3{font-size:22px}.modal-matname{font-size:14px;color:var(--text-muted);margin-top:4px}.modal-close{background:none;border:1px solid var(--card-border);border-radius:var(--radius);width:32px;height:32px;font-size:18px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center}.modal-close:hover{border-color:var(--danger);color:var(--danger)}.chart-wrap{margin-bottom:20px}.chart-container{background:var(--bg);border:1px solid var(--card-border);border-radius:var(--radius);padding:16px;position:relative}.chart-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.chart-stats{display:flex;align-items:baseline;gap:10px}.chart-stat-price{font-size:22px;font-weight:700;font-family:JetBrains Mono,monospace;color:var(--text)}.chart-stat-change{font-size:13px;font-weight:600;font-family:JetBrains Mono,monospace}.chart-stat-change.up{color:#2d8b7e}.chart-stat-change.down{color:#a63d40}.chart-range-btns{display:flex;gap:4px}.range-btn{font-size:11px;padding:4px 10px;border:1px solid var(--card-border);border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;font-weight:600;transition:all .15s}.range-btn:hover{border-color:var(--accent);color:var(--accent)}.range-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.price-chart-svg{width:100%;height:auto;cursor:crosshair}.chart-tick{font-size:11px;fill:var(--text-muted);font-family:JetBrains Mono,monospace}.chart-date{font-size:10px;fill:var(--text-muted);font-family:JetBrains Mono,monospace}.chart-pp{font-size:9px;fill:var(--danger);font-weight:700;font-family:Inter,sans-serif}.chart-placeholder{text-align:center;color:var(--text-muted);padding:32px;font-size:13px}.chart-tooltip{position:absolute;transform:translate(-50%) translateY(-100%);background:var(--card-bg);border:1px solid var(--accent);border-radius:6px;padding:6px 10px;pointer-events:none;white-space:nowrap;box-shadow:0 4px 12px #00000026;z-index:10}.tt-price{font-size:15px;font-weight:700;font-family:JetBrains Mono,monospace;color:var(--text)}.tt-date{font-size:11px;color:var(--text-muted)}.tt-note{font-size:10px;color:var(--text-muted);margin-top:2px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.price-entries{margin-bottom:20px}.price-table-mini{width:100%;border-collapse:collapse;font-size:12px}.price-table-mini thead th{padding:6px 10px;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--card-border);font-weight:600}.price-table-mini tbody td{padding:5px 10px;border-bottom:1px solid #f0f0f0}.price-table-mini .pp-row{background:#a63d400a}.price-val{font-weight:600}.status-sold{font-size:10px;font-weight:700;color:var(--success);background:#e8f5e9;padding:1px 6px;border-radius:var(--radius)}.status-pp{font-size:10px;font-weight:700;color:var(--danger);background:#fbe9e7;padding:1px 6px;border-radius:var(--radius)}.note-cell{color:var(--text-muted);font-size:11px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-cell{white-space:nowrap}.entry-edit,.entry-del{background:none;border:none;cursor:pointer;font-size:12px;padding:2px}.entry-del:hover{opacity:.7}.add-entry-form{background:#8b69140a;border:1px solid rgba(139,105,20,.15);border-radius:var(--radius);padding:16px;margin-bottom:20px}.add-entry-form h4{font-size:14px;margin-bottom:12px}.form-row{display:flex;gap:12px;align-items:flex-end;margin-bottom:8px;flex-wrap:wrap}.form-group{display:flex;flex-direction:column;gap:4px}.form-group.wide{flex:1}.form-group label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.form-group input{border:1px solid var(--card-border);border-radius:var(--radius);padding:6px 10px;font-size:13px;font-family:Inter,sans-serif;background:#fff}.form-group input:focus{outline:none;border-color:var(--accent)}.sold-toggle{display:flex;gap:0}.toggle-btn{padding:6px 14px;font-size:11px;font-weight:700;cursor:pointer;border:1px solid var(--card-border);background:#fff;color:var(--text-muted);transition:all .15s}.toggle-btn:first-child{border-radius:var(--radius) 0 0 var(--radius)}.toggle-btn:last-child{border-radius:0 var(--radius) var(--radius) 0;border-left:none}.toggle-btn.active{background:var(--success);color:#fff;border-color:var(--success)}.toggle-btn.pp.active{background:var(--danger);color:#fff;border-color:var(--danger)}.add-btn{padding:6px 20px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.add-btn:hover{background:#7a5c12}.cancel-btn{padding:6px 16px;background:none;color:var(--text-muted);border:1px solid var(--card-border);border-radius:var(--radius);font-size:13px;cursor:pointer}.screenshot-section{margin-top:16px}.screenshot-section h4{font-size:14px;margin-bottom:10px}.screenshot-drop{border:2px dashed var(--card-border);border-radius:var(--radius);padding:28px;text-align:center;cursor:pointer;transition:all .2s;background:#8b691405}.screenshot-drop:hover,.screenshot-drop.drag-over{border-color:var(--accent);background:#8b69140f}.drop-icon{font-size:28px;margin-bottom:6px}.drop-text{font-size:14px;font-weight:500;color:var(--text)}.drop-sub{font-size:12px;color:var(--text-muted);margin-top:4px}.screenshot-gallery{margin-top:12px}.screenshot-gallery h5{font-size:13px;margin-bottom:8px;color:var(--text-muted)}.shot-grid{display:flex;gap:10px;flex-wrap:wrap}.shot-thumb{position:relative;width:120px;border:1px solid var(--card-border);border-radius:var(--radius);overflow:hidden}.shot-thumb img{width:100%;height:80px;object-fit:cover}.shot-date{font-size:10px;padding:2px 6px;color:var(--text-muted);font-family:JetBrains Mono,monospace}.shot-status{font-size:9px;padding:1px 6px;display:block}.shot-status.done{color:var(--success)}.shot-status.pending{color:var(--warning)}.shot-delete{position:absolute;top:2px;right:2px;background:#0009;color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}.detail-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.add-rates-btn{padding:8px 20px;background:var(--cta);color:#fff;border:none;border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.add-rates-btn:hover{background:#a84e22}.export-catalog-btn{padding:8px 20px;background:var(--header-bg);color:#fff;border:none;border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.export-catalog-btn:hover{background:#263d5c}.rates-modal{max-width:600px}.rates-modal-wide{max-width:800px;width:90vw;max-height:90vh;overflow-y:auto}.rates-info{margin-bottom:16px}.rates-info p{font-size:13px;color:var(--text);line-height:1.6}.rates-hint{font-size:11px;color:var(--text-muted);margin-top:4px!important}.rates-drop{margin-bottom:16px}.rates-note{margin-top:16px;padding:12px 16px;background:#8b69140f;border:1px solid rgba(139,105,20,.15);border-radius:var(--radius);font-size:12px;color:var(--text-muted)}.rates-note strong{color:var(--text)}.upload-gallery{margin-top:16px}.upload-gallery h4{font-size:14px;margin-bottom:10px}.upload-list{display:flex;flex-direction:column;gap:8px}.upload-item{display:flex;gap:12px;align-items:center;padding:10px;background:#fff;border:1px solid var(--card-border);border-radius:var(--radius);position:relative}.upload-preview{width:60px;height:50px;flex-shrink:0;overflow:hidden;border-radius:var(--radius);background:#f5f5f5;display:flex;align-items:center;justify-content:center}.upload-preview img{width:100%;height:100%;object-fit:cover}.file-icon{font-size:24px}.upload-info{flex:1}.upload-name{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.upload-date{font-size:11px;color:var(--text-muted);font-family:JetBrains Mono,monospace}.upload-item .shot-delete{position:static;background:#f5f5f5;color:var(--text-muted);width:24px;height:24px}.step-tabs{display:flex;gap:0;margin-bottom:16px;border-bottom:2px solid var(--card-border)}.step-tab{padding:10px 20px;background:none;border:none;cursor:pointer;font-size:13px;font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.step-tab:hover{color:var(--text)}.step-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tender-date-row{display:flex;align-items:center;gap:10px;margin-bottom:16px}.tender-date-row label{font-size:13px;font-weight:600;color:var(--text)}.tender-date-row input{border:1px solid var(--card-border);border-radius:var(--radius);padding:6px 10px;font-size:13px}.tender-date-row input:focus{outline:none;border-color:var(--accent)}.bulk-unit{margin-bottom:16px}.bulk-unit-name{font-size:13px;color:#fff;background:var(--header-bg);padding:8px 14px;border-bottom:2px solid var(--accent);margin:0}.bulk-table-wrap{overflow-x:auto;border:1px solid var(--card-border);border-top:none}.bulk-rate-table{width:100%;border-collapse:collapse;font-size:13px}.bulk-rate-table thead th{padding:6px 12px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--card-border);font-weight:600}.bulk-rate-table tbody td{padding:4px 12px;border-bottom:1px solid #f0f0f0}.bulk-mat-name{font-weight:500;font-size:12px}.bulk-price-input{width:90px;border:1px solid var(--card-border);border-radius:var(--radius);padding:4px 8px;font-size:12px;font-family:JetBrains Mono,monospace;background:#fff}.bulk-price-input:focus{outline:none;border-color:var(--accent)}.mini-toggle{padding:2px 10px;border-radius:var(--radius);font-size:10px;font-weight:700;cursor:pointer;border:1px solid;transition:all .15s}.mini-toggle.sold{background:#e8f5e9;color:var(--success);border-color:var(--success)}.mini-toggle.pp{background:#fbe9e7;color:var(--danger);border-color:var(--danger)}.action-bar{display:flex;align-items:center;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--card-border)}.save-btn{padding:8px 20px;background:#fff;border:1px solid var(--card-border);border-radius:var(--radius);font-size:13px;cursor:pointer}.save-rates-btn{padding:10px 24px;font-size:14px}.rates-filled{font-size:12px;color:var(--text-muted);margin-left:auto;font-family:JetBrains Mono,monospace}.save-success{text-align:center;padding:40px;font-size:18px;color:var(--success);font-weight:600}.catalog-modal{max-width:700px;width:90vw;max-height:90vh;overflow-y:auto}.catalog-select-all{padding:10px 0;border-bottom:1px solid var(--card-border);margin-bottom:8px}.catalog-check-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;font-weight:600}.catalog-check-label input{width:18px;height:18px;accent-color:var(--header-bg);cursor:pointer}.catalog-list{max-height:400px;overflow-y:auto}.catalog-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background .1s}.catalog-item:hover{background:#1b2d4508}.catalog-item.checked{background:#1b2d450f}.catalog-item input{width:18px;height:18px;accent-color:var(--header-bg);cursor:pointer;flex-shrink:0}.catalog-item-info{flex:1}.catalog-item-name{font-size:13px;font-weight:500}.catalog-item-unit{font-size:11px;color:var(--text-muted)}.catalog-item-count{font-size:11px;color:var(--text-muted);font-family:JetBrains Mono,monospace;white-space:nowrap}.catalog-customize-info{font-size:12px;color:var(--text-muted);margin-bottom:12px;padding:10px;background:#1b2d450a;border-radius:var(--radius)}.catalog-customize-list{margin-bottom:12px;border:1px solid var(--card-border);border-radius:var(--radius);overflow:hidden}.catalog-orig-name{font-size:11px;color:var(--text-muted);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-name-input{width:100%;border:1px solid var(--card-border);border-radius:var(--radius);padding:4px 8px;font-size:12px;background:#fff}.catalog-name-input:focus{outline:none;border-color:var(--header-bg)}.col-check{width:32px;text-align:center!important}.check-cell{text-align:center}.mat-checkbox{width:16px;height:16px;accent-color:var(--header-bg);cursor:pointer}.row-selected{background:#1b2d450a}.col-media{width:70px;text-align:center!important}.media-cell{text-align:center}.media-btn{background:none;border:1px solid var(--card-border);border-radius:var(--radius);padding:2px 10px;font-size:12px;cursor:pointer;transition:all .15s}.media-btn:hover{border-color:var(--accent);background:#8b69140d}.media-modal{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);width:780px;max-height:90vh;overflow-y:auto;padding:24px;box-shadow:0 12px 40px #00000040}.modal-actions{display:flex;gap:8px;align-items:center}.export-btn{padding:6px 14px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.export-btn:hover{background:#7a5c12}.export-panel{background:#8b69140a;border:1px solid rgba(139,105,20,.15);border-radius:var(--radius);padding:14px;margin-bottom:16px}.export-row{display:flex;gap:12px;align-items:flex-end}.export-preview-text{font-size:11px;color:var(--text-muted);margin-top:8px}.media-upload-bar{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.upload-action-btn{padding:6px 14px;background:#fff;border:1px solid var(--card-border);border-radius:var(--radius);font-size:12px;cursor:pointer;transition:all .15s}.upload-action-btn:hover{border-color:var(--accent)}.camera-btn{border-color:var(--success);color:var(--success)}.video-btn{border-color:var(--cta);color:var(--cta)}.media-count{font-size:12px;color:var(--text-muted);margin-left:auto}.media-empty{text-align:center;padding:40px;color:var(--text-muted);font-size:13px}.empty-icon{font-size:36px;margin-bottom:8px}.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.media-thumb{position:relative;aspect-ratio:1;overflow:hidden;border-radius:var(--radius);border:2px solid transparent;cursor:pointer;transition:border-color .15s}.media-thumb:hover{border-color:var(--accent)}.media-thumb.selected{border-color:var(--accent);box-shadow:0 0 0 2px #8b69144d}.media-thumb img,.media-thumb video{width:100%;height:100%;object-fit:cover}.video-badge{position:absolute;bottom:4px;left:4px;background:#000000b3;color:#fff;font-size:10px;padding:1px 6px;border-radius:var(--radius)}.thumb-delete{position:absolute;top:4px;right:4px;background:#0009;color:#fff;border:none;border-radius:50%;width:20px;height:20px;font-size:13px;cursor:pointer;display:none;align-items:center;justify-content:center}.media-thumb:hover .thumb-delete{display:flex}.lightbox{position:fixed;inset:0;background:#000000e6;z-index:2000;display:flex;align-items:center;justify-content:center}.lightbox-content{max-width:90vw;max-height:85vh;position:relative}.lightbox-content img,.lightbox-content video{max-width:90vw;max-height:80vh;object-fit:contain;border-radius:var(--radius)}.lightbox-nav{display:flex;justify-content:space-between;align-items:center;padding:10px 0}.lightbox-nav button{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.3);padding:6px 16px;border-radius:var(--radius);cursor:pointer;font-size:13px}.lightbox-nav button:disabled{opacity:.3;cursor:default}.lightbox-nav span{color:#fff;font-size:13px;font-family:JetBrains Mono,monospace}.lightbox-close{position:absolute;top:-12px;right:-12px;background:#fff;color:#000;border:none;border-radius:50%;width:28px;height:28px;font-size:16px;cursor:pointer;font-weight:700}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:40px 32px;width:340px;max-width:90vw}.login-logo{text-align:center;margin-bottom:32px}.login-logo h1{font-size:22px;color:var(--accent);margin:0;letter-spacing:1px}.login-logo p{font-size:12px;color:var(--muted);margin:4px 0 0;text-transform:uppercase;letter-spacing:2px}.login-card form{display:flex;flex-direction:column;gap:12px}.login-card input[type=text],.login-card input[type=password]{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:10px 12px;font-size:14px;color:var(--text);outline:none}.login-card input:focus{border-color:var(--accent)}.login-btn{background:var(--accent);color:#000;border:none;border-radius:4px;padding:10px;font-size:14px;font-weight:700;cursor:pointer;letter-spacing:1px;margin-top:4px}.login-btn:hover{opacity:.9}.login-error{color:#e74c3c;font-size:12px;text-align:center}.tab-bar{display:flex;gap:0;margin-bottom:24px;border-bottom:2px solid var(--border)}.tab-btn{padding:10px 24px;background:none;border:none;cursor:pointer;font-size:15px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-btn:hover:not(.active){color:var(--fg)}.search-tab{margin-bottom:32px}.search-input-wrap{position:relative;margin-bottom:16px}.search-input{width:100%;padding:12px 40px 12px 16px;border:2px solid var(--border);border-radius:8px;font-size:15px;background:var(--card);color:var(--fg);outline:none;transition:border-color .2s}.search-input:focus{border-color:var(--accent)}.search-input::placeholder{color:var(--muted)}.search-clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:4px 8px}.search-count{color:var(--muted);font-size:13px;margin-bottom:12px}.search-table{width:100%;border-collapse:collapse;font-size:14px}.search-table th{text-align:left;padding:8px 12px;border-bottom:2px solid var(--border);color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.search-table td{padding:10px 12px;border-bottom:1px solid var(--border)}.search-row{cursor:pointer;transition:background .15s}.search-row:hover{background:#d4a57414}.search-mill{font-weight:600;color:var(--accent);white-space:nowrap}.search-mat{max-width:300px}
