*{box-sizing:border-box}:root{color-scheme:light;--page: #f9f9f7;--surface: #fcfcfb;--ink: #0b0b0b;--ink-secondary: #52514e;--ink-muted: #898781;--hairline: #e1e0d9;--border: rgba(11, 11, 11, .1);--accent: #2a78d6;--accent-strong: #256abf;--accent-track: #cde2fb;--danger: #d03b3b;--danger-wash: rgba(208, 59, 59, .08);--success: #006300;--success-wash: rgba(12, 163, 12, .08);--shadow: 0 1px 2px rgba(11, 11, 11, .04), 0 4px 12px rgba(11, 11, 11, .05);--shadow-pop: 0 4px 16px rgba(11, 11, 11, .14)}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--page);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased}.container{max-width:1040px;margin:0 auto;padding:0 1.25rem 4rem}.header{display:flex;align-items:center;gap:.65rem;padding:1.1rem 0 1rem;margin-bottom:1.75rem;border-bottom:1px solid var(--hairline)}.brand{display:inline-flex;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:-.01em}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;flex:none}.tagline{color:var(--ink-muted);font-size:.85rem;margin-left:.25rem}.header-right{margin-left:auto;display:flex;align-items:center;gap:.6rem}.user-chip{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;color:var(--ink-secondary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem 1.4rem;margin-bottom:1.25rem;box-shadow:var(--shadow)}.card>h2{margin:0 0 1rem;font-size:1.02rem;letter-spacing:-.01em}.card>h3,.panel-title{margin:0 0 .85rem;font-size:.88rem;font-weight:600;color:var(--ink)}.section-label{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:0 0 .6rem}.field{display:flex;flex-direction:column;gap:.3rem;min-width:0}.field label{font-size:.8rem;font-weight:500;color:var(--ink-secondary)}.field .optional{color:var(--ink-muted);font-weight:400}.field input{width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem;font-family:inherit;background:var(--surface);color:var(--ink);transition:border-color .15s,box-shadow .15s}.field input::placeholder{color:var(--ink-muted)}.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-track)}.form-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.85rem .85rem;margin-bottom:1rem}.form-grid-platform{grid-template-columns:1fr 1fr}.form-divider{border:none;border-top:1px solid var(--hairline);margin:1.15rem 0 .9rem}.form-footer{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.hint{color:var(--ink-muted);font-size:.78rem;margin:0}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.1rem;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:.88rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s,transform .05s}.btn:hover{background:var(--accent-strong)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-ghost{background:transparent;color:var(--ink-secondary);border:1px solid var(--border)}.btn-ghost:hover{background:var(--page);color:var(--ink)}.btn-danger-ghost{background:transparent;color:var(--danger);border:1px solid transparent}.btn-danger-ghost:hover{background:var(--danger-wash)}.btn-small{padding:.28rem .6rem;font-size:.76rem;border-radius:6px}.slug-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .55rem;border:1px solid var(--border);border-radius:999px;background:var(--page);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:var(--ink-secondary);white-space:nowrap}.badge{display:inline-flex;align-items:center;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--border);background:var(--page);font-size:.72rem;font-weight:500;color:var(--ink-secondary);white-space:nowrap}.banner-success{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:1rem;padding:.65rem .9rem;border-radius:8px;background:var(--success-wash);border:1px solid var(--border);font-size:.85rem;color:var(--ink)}.banner-success strong{color:var(--success)}.error{color:var(--danger);font-size:.85rem;margin:.75rem 0 0}.table-scroll{overflow-x:auto;margin:0 -.4rem;padding:0 .4rem}.table{width:100%;border-collapse:collapse;font-size:.87rem}.table th,.table td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--hairline);vertical-align:middle}.table th{color:var(--ink-muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.table tbody tr{transition:background .1s}.table tbody tr:hover{background:var(--page)}.table tr:last-child td{border-bottom:none}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .actions{text-align:right;white-space:nowrap}.row-title{font-weight:600;color:var(--ink);text-decoration:none}.row-title:hover{color:var(--accent)}.truncate{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.muted{color:var(--ink-muted)}.secondary{color:var(--ink-secondary)}a{color:var(--accent)}.empty-state{text-align:center;padding:2.5rem 1rem;color:var(--ink-muted)}.empty-state .glyph{font-size:1.6rem;display:block;margin-bottom:.4rem}.spinner{width:22px;height:22px;margin:2rem auto;border:2px solid var(--hairline);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.25rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.95rem 1.15rem;box-shadow:var(--shadow)}.stat-label{display:block;color:var(--ink-muted);font-size:.78rem;margin-bottom:.15rem}.stat-value{display:block;font-size:1.7rem;font-weight:600;letter-spacing:-.02em;line-height:1.15}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-bottom:1.25rem}.grid .card{margin-bottom:0}.breakdown-row{display:grid;grid-template-columns:minmax(70px,32%) 1fr 3.2em 3em;align-items:center;gap:.6rem;padding:.32rem 0;font-size:.84rem}.breakdown-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-secondary)}.breakdown-track{height:8px;border-radius:0 4px 4px 0;background:var(--accent-track);overflow:hidden}.breakdown-fill{height:100%;background:var(--accent);border-radius:0 4px 4px 0;transition:width .3s ease}.breakdown-count{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.breakdown-pct{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-muted);font-size:.78rem}.chart{position:relative}.chart-plot{display:flex;align-items:flex-end;gap:2px;height:150px;border-bottom:1px solid var(--hairline)}.chart-slot{flex:1 1 0;height:100%;display:flex;align-items:flex-end;justify-content:center;min-width:0;cursor:default}.chart-bar{width:100%;max-width:22px;background:var(--accent);border-radius:4px 4px 0 0;min-height:2px;transition:background .1s}.chart-bar.zero{background:var(--hairline);min-height:2px}.chart-slot:hover .chart-bar{background:var(--accent-strong)}.chart-slot:hover .chart-bar.zero{background:var(--ink-muted)}.chart-axis{display:flex;justify-content:space-between;margin-top:.35rem;font-size:.72rem;color:var(--ink-muted)}.chart-max{display:block;text-align:right;margin-bottom:.3rem;font-size:.72rem;color:var(--ink-muted);font-variant-numeric:tabular-nums}.chart-tooltip{position:absolute;transform:translate(-50%,-100%);background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-pop);padding:.35rem .6rem;font-size:.78rem;pointer-events:none;white-space:nowrap;z-index:10}.chart-tooltip .tt-value{font-weight:600;font-variant-numeric:tabular-nums}.chart-tooltip .tt-date{color:var(--ink-muted)}.detail-head{display:flex;flex-direction:column;gap:.35rem}.detail-head h2{margin:0;font-size:1.25rem;letter-spacing:-.01em}.detail-short{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.dest-list{margin:.6rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.dest-list li{display:flex;align-items:center;gap:.5rem;min-width:0}.dest-list a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-link{display:inline-block;margin-bottom:.9rem;font-size:.85rem;color:var(--ink-muted);text-decoration:none}.back-link:hover{color:var(--ink)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0b0b73;display:flex;align-items:flex-start;justify-content:center;padding:8vh 1rem 1rem;z-index:100;animation:fade-in .12s ease}.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-pop);width:100%;max-width:520px;max-height:84vh;overflow-y:auto;padding:1.25rem 1.4rem;animation:pop-in .15s ease}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.modal-head h2{margin:0;font-size:1.05rem;letter-spacing:-.01em}.modal-close{border:none;background:transparent;color:var(--ink-muted);font-size:.95rem;cursor:pointer;padding:.25rem .45rem;border-radius:6px}.modal-close:hover{background:var(--page);color:var(--ink)}.modal-fields{display:flex;flex-direction:column;gap:.85rem}.modal-footer{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.15rem;padding-top:1rem;border-top:1px solid var(--hairline)}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}.auth-wrap{display:flex;justify-content:center;padding-top:7vh}.auth-card{width:100%;max-width:400px}.auth-sub{font-size:.85rem;margin:-.5rem 0 1.1rem}.auth-form{display:flex;flex-direction:column;gap:.85rem}.btn-block{justify-content:center;width:100%;margin-top:.25rem}.auth-switch{font-size:.83rem;margin:1rem 0 0;text-align:center}.link-button{border:none;background:none;padding:0;font:inherit;color:var(--accent);cursor:pointer}.link-button:hover{text-decoration:underline}@media(max-width:720px){.form-grid,.form-grid-platform{grid-template-columns:1fr}.truncate{max-width:160px}.tagline{display:none}}
