@font-face{font-family:Amiri Quran;font-style:normal;font-display:swap;font-weight:400;src:url(./amiri-quran-arabic-400-normal-wRcqfVJx.woff2) format("woff2"),url(./amiri-quran-arabic-400-normal-CZ144KtP.woff) format("woff");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Amiri Quran;font-style:normal;font-display:swap;font-weight:400;src:url(./amiri-quran-latin-400-normal-w9exIk9i.woff2) format("woff2"),url(./amiri-quran-latin-400-normal-mk44s-1k.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0d0e1f;--bg-2: #12142b;--surface: #171933;--surface-2: #1e2142;--surface-3: #262a52;--border: rgba(255, 255, 255, .07);--text: #e9eaf6;--muted: #9497bd;--faint: #6a6d93;--accent: #8b7cf7;--accent-2: #5b8cff;--grad: linear-gradient(135deg, #8b7cf7, #5b8cff);--green: #3ddc97;--red: #ff5c7a;--amber: #ffb454;--pink: #ff7ac8;--cyan: #4fd6e0;--radius: 16px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI Variable Display,Segoe UI,system-ui,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:6px}::-webkit-scrollbar-track{background:transparent}h1,h2,h3{margin:0;font-weight:650}p{margin:0}a{color:var(--accent-2)}.app{display:flex;height:100vh}.main{flex:1;overflow-y:auto;padding:26px 32px 48px;background:radial-gradient(900px 500px at 85% -10%,rgba(91,140,255,.09),transparent 60%),radial-gradient(800px 500px at -10% 110%,rgba(139,124,247,.08),transparent 60%),var(--bg)}.sidebar{width:78px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 0;background:var(--bg-2);border-right:1px solid var(--border)}.sidebar .logo{width:42px;height:42px;border-radius:13px;background:var(--grad);display:grid;place-items:center;font-weight:800;font-size:15px;color:#fff;margin-bottom:14px;box-shadow:0 4px 18px #8b7cf766}.nav-btn{position:relative;width:48px;height:48px;border:none;border-radius:14px;background:transparent;color:var(--faint);display:grid;place-items:center;cursor:pointer;transition:all .15s ease}.nav-btn:hover{color:var(--text);background:var(--surface)}.nav-btn.active{color:#fff;background:var(--surface-2);box-shadow:inset 0 0 0 1px #8b7cf780}.nav-btn.active:before{content:"";position:absolute;left:-15px;top:12px;width:3px;height:24px;border-radius:3px;background:var(--grad)}.nav-btn .tip{position:absolute;left:58px;top:50%;transform:translateY(-50%);background:var(--surface-3);padding:5px 10px;border-radius:8px;font-size:12px;color:var(--text);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;z-index:30}.nav-btn:hover .tip{opacity:1}.sidebar .spacer{flex:1}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.section-head h1{font-size:24px;letter-spacing:-.3px}.section-head .sub{color:var(--muted);margin-top:4px;font-size:13px}.section-head .actions{display:flex;gap:8px;align-items:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.card>h3{font-size:14px;color:var(--muted);font-weight:600;margin-bottom:14px}.grid{display:grid;gap:14px}.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}.mb{margin-bottom:14px}.stat{padding:16px 18px}.stat .label{font-size:12px;color:var(--muted);margin-bottom:6px}.stat .value{font-size:24px;font-weight:700;letter-spacing:-.5px}.stat .value small{font-size:13px;color:var(--muted);font-weight:500;margin-left:4px}.stat .hint{font-size:12px;color:var(--faint);margin-top:5px}.btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:8px 14px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .12s;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:var(--surface-3)}.btn.primary{background:var(--grad);border:none;color:#fff}.btn.primary:hover{filter:brightness(1.12)}.btn.ghost{background:transparent}.btn.small{padding:5px 10px;font-size:12px;border-radius:8px}.btn.danger:hover{border-color:var(--red);color:var(--red)}.btn:disabled{opacity:.5;cursor:default}input,select,textarea{background:var(--bg-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:8px 12px;font-size:13px;font-family:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input[type=date]{color-scheme:dark}textarea{resize:vertical;min-height:60px;width:100%}label.field{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}.chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--surface-3);color:var(--muted)}.chip.green{background:#3ddc9724;color:var(--green)}.chip.red{background:#ff5c7a24;color:var(--red)}.chip.amber{background:#ffb45429;color:var(--amber)}.chip.accent{background:#8b7cf729;color:var(--accent)}.chip.blue{background:#5b8cff29;color:var(--accent-2)}.chip.pink{background:#ff7ac829;color:var(--pink)}.chip.cyan{background:#4fd6e029;color:var(--cyan)}.chip.cool{background:#3ddc9724;color:var(--green)}.chip.warm{background:#ffb45429;color:var(--amber)}.chip.hot,.chip.over{background:#ff5c7a29;color:var(--red)}.tabs{display:flex;gap:6px;background:var(--bg-2);padding:4px;border-radius:12px;width:fit-content}.tabs button{border:none;background:transparent;color:var(--muted);padding:7px 16px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer}.tabs button.active{background:var(--surface-2);color:#fff;box-shadow:inset 0 0 0 1px #8b7cf766}.progress{height:10px;background:var(--bg-2);border-radius:999px;overflow:hidden}.progress .fill{height:100%;background:var(--grad);border-radius:999px;transition:width .4s ease}.progress .fill.red{background:linear-gradient(135deg,#ff5c7a,#ff8f6b)}.chart{display:flex;align-items:flex-end;gap:4px;height:150px;padding-top:18px}.chart .bar{position:relative;flex:1;min-width:4px;background:var(--grad);border-radius:4px 4px 2px 2px;opacity:.85;transition:opacity .1s}.chart .bar:hover{opacity:1}.chart .bar:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);background:var(--surface-3);border:1px solid var(--border);color:var(--text);padding:4px 9px;border-radius:7px;font-size:11px;font-weight:600;white-space:nowrap;z-index:10}.chart-labels{display:flex;gap:4px;margin-top:6px}.chart-labels span{flex:1;text-align:center;font-size:10px;color:var(--faint);overflow:hidden;white-space:nowrap}.mg-head{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}.mg-head span{text-align:center;font-size:11px;font-weight:700;color:var(--faint);text-transform:uppercase}.mg{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.mg-day{position:relative;min-height:64px;background:var(--bg-2);border:1px solid transparent;border-radius:12px;padding:6px 8px;cursor:pointer;transition:border-color .1s}.mg-day:hover{border-color:var(--accent)}.mg-day.empty{background:transparent;cursor:default;border:none}.mg-day .num{font-size:12px;font-weight:700;color:var(--muted)}.mg-day.today{box-shadow:inset 0 0 0 1.5px var(--accent)}.mg-day.today .num{color:var(--accent)}.mg-day.selected{border-color:var(--accent-2)}.mg-day.pnl-pos{background:#3ddc9721}.mg-day.pnl-pos.strong{background:#3ddc9747}.mg-day.pnl-neg{background:#ff5c7a21}.mg-day.pnl-neg.strong{background:#ff5c7a47}.mg-day .pnl-amt{position:absolute;left:6px;right:6px;top:50%;transform:translateY(-20%);text-align:center;font-size:13px;font-weight:700}.pnl-pos .pnl-amt{color:var(--green)}.pnl-neg .pnl-amt{color:var(--red)}.mg-day:hover .day-tip{opacity:1}.day-tip{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:var(--surface-3);border:1px solid var(--border);padding:4px 9px;border-radius:7px;font-size:11px;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;z-index:10;transition:opacity .1s}.mg-day .tick{position:absolute;top:5px;right:7px;color:var(--green);font-size:13px;font-weight:800}.mg-day .mini{font-size:10px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev-dot{font-size:10.5px;font-weight:600;padding:1.5px 6px;margin-top:3px;border-radius:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff}.month-nav{display:flex;align-items:center;gap:10px}.month-nav h2{font-size:16px;min-width:150px;text-align:center}.row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-2);border:1px solid var(--border);border-radius:12px}.row+.row{margin-top:8px}.row .grow{flex:1;min-width:0}.row .title{font-weight:650;font-size:13.5px}.row .desc{font-size:12px;color:var(--muted);margin-top:2px}.empty{text-align:center;color:var(--faint);padding:34px 10px;font-size:13px}.empty .big{font-size:26px;margin-bottom:8px}.stages{display:flex;align-items:center;flex-wrap:wrap;gap:0;margin-top:10px}.stage{display:flex;align-items:center}.stage .dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--bg-2);border:1.5px solid var(--surface-3);color:var(--faint);font-size:11px;font-weight:700;cursor:pointer}.stage.done .dot{background:var(--grad);border:none;color:#fff}.stage.current .dot{border-color:var(--accent);color:var(--accent);box-shadow:0 0 10px #8b7cf780}.stage .bar{width:26px;height:2px;background:var(--surface-3)}.stage.done .bar{background:var(--accent)}.stage .name{font-size:10.5px;color:var(--muted);margin:0 6px 0 5px;max-width:90px}.stage.current .name{color:var(--text);font-weight:600}.sleep-bar{display:flex;height:8px;border-radius:6px;overflow:hidden;margin-top:8px}.sleep-bar .deep{background:#5b8cff}.sleep-bar .core{background:#8b7cf7}.sleep-bar .rem{background:#ff7ac8}.sleep-bar .awake{background:var(--surface-3)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#060712b8;display:grid;place-items:center;z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:22px 24px;width:min(480px,92vw);max-height:86vh;overflow-y:auto;box-shadow:0 24px 60px #00000080}.modal h2{font-size:17px;margin-bottom:16px}.modal .form{display:flex;flex-direction:column;gap:12px}.modal .foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.app-dot{width:10px;height:10px;border-radius:50%}.ar{font-family:Amiri Quran,Aldhabi,Sakkal Majalla,Traditional Arabic,serif;direction:rtl}.ayah-wrap{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 18px}.ayah-card{flex:1;text-align:center;padding:24px 30px 14px;background:radial-gradient(400px 160px at 50% -30%,rgba(139,124,247,.14),transparent 70%),var(--surface)}.ayah-ar{font-family:Amiri Quran,Aldhabi,Sakkal Majalla,Traditional Arabic,serif;font-size:34px;line-height:2.1;direction:rtl;min-height:76px;display:grid;place-items:center}.ayah-en{font-size:11.5px;color:var(--muted);margin-top:6px}.ayah-ref{font-size:10.5px;color:var(--faint);margin-top:3px}.ayah-arrow{border:1px solid var(--border);background:var(--surface);color:var(--muted);width:32px;height:32px;border-radius:50%;font-size:18px;cursor:pointer;flex-shrink:0}.ayah-arrow:hover{color:var(--text);background:var(--surface-2)}.dots{display:flex;gap:7px;justify-content:center;margin-top:10px}.dots button{width:7px;height:7px;border-radius:50%;border:none;padding:0;cursor:pointer;background:var(--surface-3);transition:all .15s}.dots button.active{background:var(--accent);transform:scale(1.3)}.prayer-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:14px}.prayer-hero{text-align:center;padding:24px 20px 20px;background:radial-gradient(500px 260px at 50% -20%,rgba(91,140,255,.13),transparent 70%),var(--surface)}.prayer-hero .which{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px}.prayer-hero .next-line{font-size:12.5px;color:var(--faint);margin-top:5px;min-height:16px}.ring-wrap{position:relative;display:inline-block;margin:10px 0 6px}.ring-inner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.ring-name{font-size:19px;font-weight:750}.ring-name-ar{font-size:30px;color:var(--accent);line-height:1.25}.ring-count{font-size:30px;font-weight:800;letter-spacing:1.5px;font-variant-numeric:tabular-nums;margin-top:2px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.prayer-side{display:flex;flex-direction:column;gap:14px}.hijri-card{text-align:center;padding:18px;flex-shrink:0}.hijri-card .hijri-ar{font-size:24px;color:var(--muted);line-height:1.6}.hijri-card .hijri-date{font-size:34px;line-height:1.7;color:var(--text)}.fact-card{flex:1}.fact{display:flex;align-items:center;gap:12px;padding:7px 0}.fact-icon{font-size:20px}.fact-label{font-size:11.5px;color:var(--muted)}.fact-value{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.prayer-times{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.prayer-cell{position:relative;text-align:center;padding:14px 8px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--border)}.prayer-cell .p-icon{color:var(--muted)}.prayer-cell .p-en{font-size:13px;font-weight:650;margin-top:4px}.prayer-cell .p-ar{font-size:20px;color:var(--faint);line-height:1.5}.prayer-cell .p-time{font-size:14px;font-weight:750;font-variant-numeric:tabular-nums;margin-top:2px}.prayer-cell.done{opacity:.45}.prayer-cell.done .p-tick{position:absolute;top:7px;right:9px;color:var(--green);font-size:11px;font-weight:800}.prayer-cell.current{background:linear-gradient(160deg,#8b7cf733,#5b8cff1a),var(--surface);border-color:var(--accent);box-shadow:0 0 22px #8b7cf740}.prayer-cell.current .p-icon{color:var(--accent)}.prayer-cell.info .p-en,.prayer-cell.info .p-time{font-weight:500;color:var(--muted)}@media(max-width:1100px){.prayer-grid{grid-template-columns:1fr}.prayer-times{grid-template-columns:repeat(3,1fr)}}.gate{position:relative}.gate-blur{filter:blur(9px);pointer-events:none;-webkit-user-select:none;user-select:none}.gate-overlay{position:fixed;top:0;right:0;bottom:0;left:78px;display:grid;place-items:center;background:#090a1880;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60}.gate-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:28px 30px;width:min(340px,90vw);text-align:center;box-shadow:0 24px 60px #0000008c}.gate-card.wrong{animation:shake .35s}.gate-card .lock{font-size:30px;margin-bottom:10px}.gate-card h2{font-size:18px;margin-bottom:4px}.gate-card input{width:100%;margin-top:16px;text-align:center;letter-spacing:8px;font-size:20px}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;align-items:start}.news-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:border-color .12s,transform .12s,opacity .2s}.news-card:hover{border-color:var(--accent);transform:translateY(-2px)}.news-card.read{opacity:.5}.news-thumb{height:150px;background:var(--surface-2)}.news-thumb img{width:100%;height:100%;object-fit:cover;display:block}.news-body{padding:14px 16px 12px}.news-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.news-title{margin:0;font-size:14.5px;font-weight:700;line-height:1.4}.news-snippet{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.news-card.no-image{background:linear-gradient(158deg,var(--surface-2),var(--surface) 65%);border-left:3px solid rgba(139,124,247,.45)}.news-card.no-image .news-body{padding:16px 18px 13px}.news-card.no-image .news-title{font-size:16px;line-height:1.35}.news-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.news-foot-right{display:flex;align-items:center;gap:8px}.news-star{background:none;border:none;padding:0 2px;font-size:17px;line-height:1;cursor:pointer;color:var(--muted);transition:color .12s,transform .12s}.news-star:hover{color:var(--accent);transform:scale(1.15)}.news-star.on{color:var(--accent)}.news-card.read:has(.news-star.on){opacity:.75}.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;align-items:start}.note-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px 12px;cursor:pointer;transition:border-color .12s,transform .12s}.note-card:hover{border-color:var(--accent);transform:translateY(-2px)}.note-card.pinned{background:linear-gradient(170deg,rgba(139,124,247,.09),transparent 45%),var(--surface)}.note-pin{position:absolute;top:8px;right:10px;border:none;background:transparent;color:var(--faint);font-size:16px;cursor:pointer;padding:2px}.note-pin:hover,.note-pin.on{color:var(--amber)}.note-title{font-weight:700;font-size:14.5px;margin-bottom:6px;padding-right:20px}.note-body{font-size:12.5px;color:var(--muted);white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;min-height:18px}.note-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.note-foot .chip{gap:6px}.gauge-card{display:flex;align-items:center;justify-content:space-between;gap:8px}.gauge{position:relative;flex-shrink:0}.gauge-num{position:absolute;bottom:0;font-size:11px;font-weight:700;color:var(--muted)}.gauge-num.left{left:8px}.gauge-num.right{right:8px}.status-light{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);font-size:13px;font-weight:600;cursor:pointer}.status-light:hover{background:var(--surface-3)}.status-light .led{width:9px;height:9px;border-radius:50%;background:var(--faint);box-shadow:0 0 #0000}.status-light.green .led{background:var(--green);box-shadow:0 0 8px var(--green)}.status-light.amber .led{background:var(--amber);box-shadow:0 0 8px var(--amber)}.status-light.red .led{background:var(--red)}.source-status{display:flex;gap:8px;flex-wrap:wrap}.divider{height:1px;background:var(--border);margin:14px 0;border:none}.muted{color:var(--muted);font-size:12.5px}.faint{color:var(--faint);font-size:12px}.scroll-table{max-height:320px;overflow-y:auto}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;color:var(--faint);font-size:11.5px;text-transform:uppercase;padding:6px 10px;position:sticky;top:0;background:var(--surface)}table.data td{padding:7px 10px;border-top:1px solid var(--border)}.donut-card{display:flex;align-items:center;gap:20px}.legend{display:flex;flex-direction:column;gap:8px;font-size:13px}.legend .row{display:flex;align-items:center;gap:8px}.legend .dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.note{font-size:11.5px;color:var(--faint);margin-top:10px;line-height:1.5}.note code{background:var(--bg-2);padding:1px 6px;border-radius:6px;font-size:11px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:16px}.panel-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.legend-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:6px}.legend-row .key{display:inline-flex;align-items:center;gap:6px}.legend-row .swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.legend-row .key-sep{width:1px;height:14px;background:var(--border)}.hour-wrap{position:relative}.hour-chart{width:100%;height:auto;display:block;overflow:visible}.hour-chart .grid{stroke:var(--surface-3);stroke-width:1}.hour-chart .axis{stroke:var(--border);stroke-width:1}.hour-chart .tick{fill:var(--faint);font-size:11px;font-variant-numeric:tabular-nums}.hour-chart .band-label{fill:var(--text);font-size:11px;font-weight:600}.hour-chart .hit{cursor:pointer;outline:none}.hour-chart .hit:focus-visible{fill:#ffffff0d}.chart-tip{position:absolute;top:4px;transform:translate(10px);background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:9px 12px;font-size:12px;pointer-events:none;min-width:132px;box-shadow:0 8px 24px #00000073;z-index:2}.chart-tip.flip{transform:translate(calc(-100% - 10px))}.chart-tip .tip-head{font-weight:700;color:var(--text);margin-bottom:6px;font-size:12.5px}.chart-tip .tip-row{display:flex;align-items:center;gap:6px;color:var(--muted);line-height:1.7}.chart-tip .tip-row b{color:var(--text);font-size:13px}.chart-tip .line-key{width:10px;height:2px;border-radius:1px;flex-shrink:0}.pair-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:var(--bg)}.pair-card{width:100%;max-width:340px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px 22px;text-align:center}.pair-card .logo{width:46px;height:46px;border-radius:14px;background:var(--grad);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}.pair-card h2{margin-bottom:6px}.pair-card .muted{font-size:13px;margin-bottom:16px}.pair-card input{width:100%;text-align:center;letter-spacing:2px;font-size:16px;text-transform:uppercase}@media(max-width:820px){.app{flex-direction:column;height:auto;min-height:100vh}.sidebar{order:2;position:fixed;bottom:0;left:0;right:0;width:auto;height:auto;flex-direction:row;align-items:center;gap:2px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));border-right:none;border-top:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch;z-index:40}.sidebar::-webkit-scrollbar{display:none}.sidebar .logo,.sidebar .spacer{display:none}.sidebar .nav-btn{flex:0 0 auto}.sidebar .tip{display:none}.main{order:1;padding:18px 14px calc(84px + env(safe-area-inset-bottom));padding-top:max(18px,env(safe-area-inset-top))}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}.grid.cols-4.stats-tight{grid-template-columns:repeat(2,1fr)}.section-head{flex-direction:column;align-items:flex-start;gap:12px}.section-head .actions{width:100%;flex-wrap:wrap}.section-head h1{font-size:22px}table.data{display:block;overflow-x:auto;white-space:nowrap}.tabs{overflow-x:auto;max-width:100%}.hour-wrap{overflow-x:auto}.hour-chart{min-width:640px}.chart-tip{position:fixed;left:12px!important;right:12px;top:auto;bottom:92px;transform:none!important;min-width:0}.gate-overlay{left:0}.modal{width:calc(100vw - 28px);max-width:none}}@media(max-width:420px){.grid.cols-4.stats-tight{grid-template-columns:1fr}.main{padding-left:11px;padding-right:11px}.card{padding:14px}}.skip-reason{display:inline-flex;align-items:center;gap:7px;margin-top:6px;padding:3px 9px;background:var(--bg-2);border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:12px;font-family:inherit;cursor:pointer;text-align:left;max-width:100%}.skip-reason:hover{border-color:var(--accent);color:var(--text)}.skip-reason .none{font-style:italic;color:var(--faint)}.skip-reason .pencil{opacity:0;font-size:11px;flex-shrink:0}.skip-reason:hover .pencil{opacity:.75}.doc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.doc-meta{display:flex;align-items:center;gap:10px;font-size:12px}.doc-box{width:100%;min-height:460px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.65;white-space:pre-wrap}@media(max-width:820px){.doc-box{min-height:300px}}.cat-legend,.cat-choice{display:flex;gap:8px;flex-wrap:wrap}.cat-choice{margin-bottom:16px}.cat-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--muted);font-size:12.5px;font-family:inherit;cursor:pointer}.cat-pill:hover{color:var(--text);background:var(--surface-2)}.cat-pill.on{font-weight:600}.cat-pill .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
