:root{--accent:#d97757;--accent-dark:#c15f3c;--accent-soft:rgba(217,119,87,0.1);--ink:#1f1e1d;--muted:#78746d;--surface:#ffffff;--border:#ece8e1;--bg-top:#f7f5f0;--bg-bottom:#efece4;--admin:#e03131;--admin-dark:#c92a2a;--admin-soft:rgba(224,49,49,0.1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:linear-gradient(180deg,var(--bg-top) 0,var(--bg-bottom) 100%);color:var(--ink);min-height:100vh;padding:48px 20px;-webkit-font-smoothing:antialiased}.container{max-width:1180px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 1px 2px rgba(31,30,29,.04),0 12px 40px rgba(31,30,29,.08);padding:44px}.table-scroll{overflow-x:auto}.masthead{display:flex;align-items:center;gap:16px;margin-bottom:28px}.masthead .logo{display:grid;place-items:center;width:56px;height:56px;border-radius:14px;background:var(--accent-soft);flex:none}h1{font-size:26px;font-weight:650;letter-spacing:-.02em;color:var(--ink)}.version{display:inline-block;vertical-align:middle;margin-left:8px;padding:2px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark);font-size:12px;font-weight:600;letter-spacing:0}.welcome{color:var(--muted);font-size:14px;padding:12px 16px;background:#faf9f6;border:1px solid var(--border);border-radius:12px;margin-bottom:24px}.welcome strong{color:var(--ink);font-weight:600}.platform-card{border:1px solid var(--border);padding:22px 24px;margin:14px 0;border-radius:16px;background:var(--surface);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.platform-card:hover{border-color:var(--accent);box-shadow:0 6px 20px rgba(217,119,87,.12);transform:translateY(-1px)}.platform-card.recommended{border-color:var(--accent);background:linear-gradient(135deg,#fdf6f3,#ffffff 60%)}.platform-card .card-body{flex:1 1 auto;min-width:0}.platform-card h3{color:var(--ink);font-size:17px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.platform-card p{color:var(--muted);font-size:14px;margin-top:4px}.recommended-badge{display:inline-flex;align-items:center;background:var(--accent-soft);color:var(--accent-dark);padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.file-size{color:var(--muted);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.download-btn{flex:none;background:var(--accent);color:#fff;padding:11px 24px;text-decoration:none;border-radius:10px;font-size:14px;font-weight:600;transition:background .15s ease,transform .15s ease,box-shadow .15s ease;box-shadow:0 2px 8px rgba(217,119,87,.28)}.download-btn:hover{background:var(--accent-dark);transform:translateY(-1px);box-shadow:0 4px 14px rgba(217,119,87,.36)}.coming-soon-wrap{position:relative}.coming-soon-blur{filter:blur(2.5px);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.coming-soon-badge{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;background:rgba(247,245,240,.2);border-radius:16px}.coming-soon-badge span{background:linear-gradient(135deg,var(--accent) 0,var(--accent-dark) 100%);border-radius:999px;padding:clamp(14px,3vw,22px) clamp(28px,6vw,56px);font-size:clamp(24px,5vw,42px);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;box-shadow:0 16px 40px rgba(217,119,87,.38),0 4px 12px rgba(31,30,29,.1)}.instructions{margin-top:32px;padding:22px 24px;background:#faf9f6;border-radius:16px;border:1px solid var(--border)}.instructions h4{color:var(--ink);font-size:15px;font-weight:600;margin-bottom:12px}.instructions ul{margin-left:20px;color:var(--muted);font-size:14px;line-height:1.9}.instructions code{background:#efece4;padding:2px 7px;border-radius:6px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85em;color:var(--accent-dark)}.instructions a{color:var(--accent-dark);font-weight:600;text-decoration:underline}.instructions a:hover{color:var(--accent)}.instructions .muted{color:var(--muted);font-style:italic}.center{text-align:center}.login-logo{display:grid;place-items:center;width:64px;height:64px;border-radius:16px;background:var(--accent-soft);margin:8px auto 20px}.lead{font-size:15px;margin-top:12px}.empty,.lead{color:var(--muted)}.empty{text-align:center;padding:40px;border:1px dashed var(--border);border-radius:16px}.masthead-user{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none}.masthead-email{color:var(--muted);font-size:13px}.admin-pill{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark);text-transform:uppercase;letter-spacing:.04em}.tab-nav{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:28px;overflow-x:auto}.tab{padding:10px 16px;font-size:14px;font-weight:500;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent-dark);border-bottom-color:var(--accent);font-weight:600}.tab.admin{color:var(--admin-dark);background:var(--admin-soft);border-radius:6px 6px 0 0}.tab.admin:hover{color:var(--admin-dark);background:rgba(224,49,49,.18)}.tab.admin.active{color:var(--admin-dark);border-bottom-color:var(--admin)}.app-footer{margin-top:36px;padding-top:20px;border-top:1px solid var(--border);font-size:13px}.app-footer a{color:var(--muted);text-decoration:none}.app-footer a:hover{color:var(--accent-dark);text-decoration:underline}.section-title{font-size:19px;font-weight:600;color:var(--ink);margin-bottom:8px}.section-lead{color:var(--muted);font-size:14px;line-height:1.7;margin-bottom:24px}.data-table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:28px}.data-table th{text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:0 12px 10px;white-space:nowrap}.data-table td,.data-table th{border-bottom:1px solid var(--border)}.data-table td{padding:12px;color:var(--ink);vertical-align:middle}.data-table tbody tr:hover{background:#faf9f6}.data-table .numeric{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.data-table th.sortable button{background:none;border:none;padding:0;margin:0;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer}.data-table th.sortable:hover{color:var(--ink)}.data-table .sort-arrow,.data-table code{color:var(--accent-dark)}.data-table code{background:#efece4;padding:2px 7px;border-radius:6px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85em}.data-table .subtle{color:var(--muted);font-size:13px}.data-table .nowrap{white-space:nowrap}.data-table .diff-cell{max-width:360px;white-space:normal;word-break:break-word}.row-actions{text-align:right;white-space:nowrap}.drag-handle{white-space:nowrap;width:1%}.drag-handle .link-btn{padding:2px 6px;font-size:13px}.data-table tr[draggable=true]{cursor:-webkit-grab;cursor:grab}.data-table tr.dragging{opacity:.4}.inline-link{color:var(--accent-dark);text-decoration:underline}.inline-link:hover{color:var(--accent)}.link-btn{background:none;border:none;color:var(--accent-dark);font-size:13px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:6px;font-family:inherit}.link-btn:hover:not(:disabled){background:var(--accent-soft)}.link-btn:disabled{opacity:.5;cursor:not-allowed}.link-btn.danger{color:#b4291f}.link-btn.danger:hover:not(:disabled){background:rgba(180,41,31,.08)}.policy-form{padding:22px 24px;background:#faf9f6;border:1px solid var(--border);border-radius:16px}.policy-form h4{font-size:15px;font-weight:600;margin-bottom:16px}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:16px;gap:16px}.field-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--ink)}.field-grid input,.field-grid select{font-family:inherit;font-size:14px;font-weight:400;padding:9px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--ink)}.field-grid input:focus,.field-grid select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-grid input[readonly]{background:#efece4;color:var(--muted)}.field-grid .hint{font-size:12px;font-weight:400;color:var(--muted)}.form-actions{display:flex;align-items:center;gap:12px;margin-top:20px}.form-actions .download-btn{border:none;cursor:pointer;font-family:inherit}.form-actions .download-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.cli-auth-actions{justify-content:flex-end}.form-error{border-radius:9px;background:rgba(180,41,31,.08);border:1px solid rgba(180,41,31,.2);color:#8f2018}.form-error,.form-notice{margin-top:16px;padding:10px 14px;font-size:13px}.form-notice{border-radius:9px;background:var(--accent-soft);border:1px solid rgba(217,119,87,.24);color:var(--accent-dark)}.banner{padding:12px 16px;border-radius:10px;font-size:13px;line-height:1.6;margin-bottom:20px}.banner.warn{background:rgba(217,119,87,.08);border:1px solid rgba(217,119,87,.24);color:var(--accent-dark)}.quota-card{padding:22px 24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);margin-bottom:24px}.quota-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.quota-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:4px}.quota-amounts{font-size:15px;color:var(--muted)}.quota-amounts strong{font-size:22px;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.quota-remaining{text-align:right;flex:none}.quota-remaining strong{font-size:22px;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.quota-remaining strong.exhausted{color:#b4291f}.quota-bar{height:8px;border-radius:999px;background:#efece4;overflow:hidden}.quota-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .3s ease}.quota-fill.exhausted{background:#b4291f}.quota-foot{margin-top:12px;font-size:13px;color:var(--muted);line-height:1.6}.key-meta code,.quota-foot code{background:#efece4;padding:2px 7px;border-radius:6px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85em;color:var(--accent-dark)}.key-panel{padding:22px 24px;background:#faf9f6;border:1px solid var(--border);border-radius:16px;margin-bottom:28px}.key-panel h4{font-size:15px;font-weight:600;margin-bottom:12px}.key-meta{list-style:none;font-size:13px;color:var(--muted);line-height:2;margin-bottom:16px}.key-meta .subtle{font-style:italic}.reveal-warning{font-size:13px;color:#8f2018;background:rgba(180,41,31,.08);border:1px solid rgba(180,41,31,.2);padding:10px 14px;border-radius:9px;margin-bottom:14px}.key-value{display:flex;align-items:center;gap:12px;margin-bottom:14px}.key-value code{flex:1 1;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:9px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;color:var(--ink);word-break:break-all;-webkit-user-select:all;-moz-user-select:all;user-select:all}.key-value .download-btn{border:none;cursor:pointer;font-family:inherit;flex:none}.form-actions .hint{font-size:12px;color:var(--muted)}.config-card{padding:22px 24px;background:var(--surface);border:1px solid var(--border);border-radius:16px;margin-bottom:28px}.config-card h4{font-size:15px;font-weight:600}.config-card h4,.config-tabs{margin-bottom:14px}.config-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.config-head code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;color:var(--muted)}.config-head .download-btn{border:none;cursor:pointer;font-family:inherit;flex:none}.code-block{padding:16px 18px;background:#1f1e1d;border-radius:12px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.7;color:#f2efe9;overflow-x:auto;margin-bottom:14px;-webkit-user-select:all;-moz-user-select:all;user-select:all}.chart-card{padding:20px 24px 12px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.chart-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.chart-head h4{font-size:15px;font-weight:600}.chart-summary{font-size:13px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chart-body{margin-left:-8px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px;margin-bottom:24px}.stat{padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.stat-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}.stat strong{font-size:20px;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.range-picker{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.range-presets{display:flex;flex-wrap:wrap;gap:6px}.range-btn{font-family:inherit;font-size:13px;font-weight:500;padding:8px 14px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--muted);cursor:pointer;transition:border-color .15s ease,color .15s ease}.range-btn:hover{border-color:var(--accent);color:var(--ink)}.range-btn.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark);font-weight:600}.range-custom{display:flex;align-items:flex-end;gap:10px}.range-custom label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--muted)}.range-custom input,.range-custom select{font-family:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink)}.range-custom input:focus,.range-custom select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.table-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 14px}.table-head h4{font-size:15px;font-weight:600}