:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f7fb;color:#111827}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}code{word-break:break-word;color:#0f766e;font-family:JetBrains Mono,Consolas,monospace;font-size:12px}.gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(120deg,#ecfdf5d9,#eff6ffeb),#f8fafc}.gate-panel{width:min(100%,460px);padding:30px;border:1px solid #d9e2ec;border-radius:8px;background:#fff;box-shadow:0 20px 60px #0f172a1f}.gate-panel.wide{width:min(100%,860px)}.gate-panel h1,.gate-panel h2{margin:12px 0 8px}.gate-panel p,.muted,.hint{color:#64748b;line-height:1.55}.hint{margin-bottom:18px;font-size:14px}.primary,.secondary{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;border:1px solid transparent;padding:9px 12px;font-weight:750;text-decoration:none}.primary{background:#111827;color:#fff}.secondary{background:#fff;color:#111827;border-color:#cbd5e1}.danger{color:#991b1b;border-color:#fecaca}.check-row{display:flex;align-items:center;gap:8px;color:#475569;font-size:14px}.check-row input{width:auto;min-height:auto}.error-box{margin:12px 0;padding:10px 12px;border-radius:8px;border:1px solid #fecaca;background:#fef2f2;color:#991b1b;font-size:14px}.notice-box{margin:12px 0;padding:10px 12px;border-radius:8px;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;font-size:14px}.setup-grid,.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stack{display:grid;gap:12px}.qr{width:220px;height:220px;border:1px solid #e2e8f0;border-radius:8px}.codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.app-shell{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:22px;background:#0f172a;color:#fff}.logo{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;background:#14b8a6;color:#042f2e;font-weight:900}nav{display:grid;gap:8px;margin-top:26px}nav button{min-height:42px;display:flex;align-items:center;gap:10px;border:0;border-radius:8px;background:transparent;color:#cbd5e1;padding:10px;text-align:left}nav button:hover,nav button.active{background:#ffffff1a;color:#fff}.content{padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.eyebrow{margin:0 0 4px;color:#0f766e;font-size:12px;font-weight:800;text-transform:uppercase}.topbar h1{margin:0;font-size:28px}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:24px}.metric,.panel,.group-card,.user-card{border:1px solid #dbe4ee;border-radius:8px;background:#fff}.metric{min-height:108px;padding:14px;display:grid;align-content:space-between}.metric span{color:#64748b;font-size:13px}.metric strong{font-size:26px}.page-stack{display:grid;gap:28px}.routines-page>.routines-status{order:1}.routines-page>.routines-existing{order:2}.routines-page>.routines-logs{order:3}.routines-page>.routines-builder{order:4}.routine-container-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:10px}.container-status-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(220px,1.5fr);gap:10px;align-items:stretch;margin-bottom:14px}.container-status-summary>div,.container-status-summary>small{display:grid;align-content:center;gap:4px;min-height:64px;border:1px solid #dbe4ee;border-radius:8px;padding:10px 12px;background:#f8fafc}.container-status-summary span,.container-status-summary small{color:#64748b;font-size:12px}.container-status-summary strong{color:#0f172a;font-size:17px}.routine-container-state{min-height:224px;border:1px solid #dbe4ee;border-radius:8px;padding:12px;display:grid;align-content:start;gap:12px}.routine-container-state.running{background:#ecfdf5;border-color:#86efac}.routine-container-state.stopped{background:#fef2f2;border-color:#fecaca}.routine-container-state.pending{background:#fffbeb;border-color:#fde68a}.routine-container-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.routine-container-state .routine-container-heading>span{color:#475569;font-size:13px;overflow-wrap:anywhere}.routine-container-heading strong{font-size:15px}.container-state-control{display:inline-flex;align-items:center;gap:7px}.container-power{width:26px;height:26px;display:inline-grid;place-items:center;padding:0;border:1px solid currentColor;border-radius:50%;color:inherit;background:#fff9;cursor:pointer}.container-power:hover:not(:disabled){background:#fffffff2}.container-power:disabled{opacity:.45;cursor:wait}.routine-container-state.running strong{color:#047857}.routine-container-state.stopped strong{color:#b91c1c}.routine-container-state.pending strong{color:#a16207}.routine-container-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.routine-container-metrics>span{min-width:0;display:grid;gap:3px;padding:8px;border-radius:6px;background:#ffffffb8}.routine-container-metrics small,.routine-container-waiting{color:#64748b;font-size:11px}.routine-container-metrics b{min-width:0;color:#0f172a;font-size:12px;overflow-wrap:anywhere}.routine-container-waiting{align-self:center}.panel{padding:20px}.panel.quiet{background:#fbfdff}.panel-title{display:flex;align-items:center;gap:9px;margin-bottom:18px}.panel-title h2{margin:0;font-size:19px}.inline-form,.routine-form,.calendar-form,.limits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end;margin-bottom:18px}.routine-form{grid-template-columns:repeat(5,minmax(0,1fr))}.calendar-form{grid-template-columns:1fr 1fr 1fr 1fr 1fr 1.6fr auto}.routine-settings{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:12px;align-items:end;margin-top:8px;padding-top:18px;border-top:1px solid #edf2f7}.routine-settings h3{grid-column:1 / -1;margin:0;font-size:14px}.field{display:grid;gap:6px}.field span{color:#475569;font-size:12px;font-weight:800}input,select{width:100%;min-height:40px;border:1px solid #cbd5e1;border-radius:8px;padding:9px 10px;background:#fff;color:#111827}.table{display:grid;gap:8px;max-height:360px;overflow:auto}.table-row{display:grid;grid-template-columns:minmax(140px,.9fr) minmax(180px,1.2fr) minmax(120px,.8fr);gap:12px;align-items:center;padding:10px;border:1px solid #edf2f7;border-radius:8px}.table-row span{font-weight:650}.table-row small{color:#64748b}.group-list,.user-list,.routine-list{display:grid;gap:14px}.group-card,.user-card,.routine-card{padding:16px}.routine-row{display:grid;grid-template-columns:minmax(170px,1.35fr) minmax(120px,.8fr) minmax(175px,1fr) minmax(110px,.7fr) auto auto;align-items:center;gap:14px}.routine-row>span{color:#475569;font-size:13px}.routine-state{width:max-content;border-radius:999px;padding:4px 9px;font-weight:700}.routine-state.running{background:#dcfce7;color:#166534}.routine-state.stopped{background:#e2e8f0;color:#475569}.group-head,.user-main,.routine-main,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px}.group-card h3,.user-card h2,.routine-card h3{margin-bottom:4px}.group-card p,.user-card p,.routine-card p{margin-bottom:0;color:#64748b;font-size:13px}.resource-pills{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.pill{min-height:32px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#334155;padding:6px 10px;font-size:12px}.pill.active{border-color:#0f766e;background:#ccfbf1;color:#134e4a}.search{width:min(100%,440px);display:flex;align-items:center;gap:8px;border:1px solid #cbd5e1;border-radius:8px;padding:0 10px;background:#fff}.search input{border:0;padding-left:0}.user-actions{display:flex;gap:8px;flex-wrap:wrap}.user-table{display:grid;gap:8px}.user-row{min-width:0;display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(90px,.55fr) minmax(130px,1fr) minmax(130px,1fr) minmax(90px,.55fr) minmax(160px,1.1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #edf2f7;border-radius:8px;background:#fff}.user-row.graphy-only{background:#fbfdff}.user-row span{min-width:0;overflow:hidden;color:#64748b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.user-identity{min-width:0;display:grid;gap:2px}.user-identity strong,.user-identity span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-identity strong{color:#111827;font-size:13px}.user-identity span{color:#64748b;font-size:12px}.user-pill{display:inline-flex;width:fit-content;max-width:100%;min-height:24px;align-items:center;border-radius:999px;background:#ecfdf5;color:#047857!important;padding:4px 8px;font-weight:800}.compact-actions{justify-content:flex-end}.compact-actions .secondary{min-height:32px;padding:6px 9px;font-size:12px}.empty-state{color:#64748b;font-size:13px}.routine-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.readonly-badge{display:inline-flex;min-height:32px;align-items:center;border-radius:999px;border:1px solid #e2e8f0;padding:5px 10px;color:#64748b;font-size:12px;font-weight:750}.routine-card.readonly{background:#fbfdff}.user-stats,.routine-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}.routine-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.user-stats span,.routine-stats span{display:grid;gap:4px;padding:10px;border-radius:8px;background:#f8fafc;color:#64748b;font-size:12px}.user-stats strong,.routine-stats strong{color:#111827;font-size:13px}.feed-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.status-line{display:grid;gap:5px;min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:12px}.status-line span{color:#64748b;font-size:12px;font-weight:700}.status-line strong{min-width:0;overflow-wrap:anywhere;color:#111827;font-size:14px}.status-line strong.ok{color:#047857}.status-line strong.bad{color:#b91c1c}.feed-subjects{display:grid;gap:8px}.feed-subject-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid #e2e8f0;padding:9px 0}.feed-subject-row code{min-width:0;overflow-wrap:anywhere;color:#334155}.feed-subject-row strong{color:#111827}.user-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.mini-list{display:grid;gap:8px;align-content:start;padding:12px;border:1px solid #edf2f7;border-radius:8px}.mini-list h3{margin:0;font-size:13px}.mini-list span,.mini-list small{color:#64748b;font-size:12px}.audit-table{display:grid;gap:8px}.audit-row{display:grid;grid-template-columns:minmax(190px,1fr) minmax(220px,1fr) minmax(100px,.6fr) minmax(150px,.8fr);gap:12px;align-items:center;padding:12px;border:1px solid #edf2f7;border-radius:8px}.audit-row span,.audit-row small{color:#64748b}.log-box{display:grid;gap:8px;max-height:420px;overflow:auto;padding:12px;border:1px solid #edf2f7;border-radius:8px;background:#0f172a}.log-box code{color:#cbd5e1}.log-box small{color:#94a3b8}.calendar-toolbar{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:16px}.calendar-today{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff}.calendar-today-label{display:block;color:#2563eb;font-size:12px;font-weight:800}.calendar-today strong{display:block;margin-top:4px;color:#0f172a;font-size:18px}.calendar-today p{margin:4px 0 0;color:#475569}.today-badge{border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800;white-space:nowrap}.today-badge.open{background:#dcfce7;color:#166534}.today-badge.closed{background:#fee2e2;color:#991b1b}.today-sessions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.today-sessions span{padding:7px 9px;border:1px solid #dbeafe;border-radius:6px;color:#475569;font-size:12px}.today-sessions .session-chip.open{border-color:#86efac;background:#f0fdf4}.today-sessions .session-chip.closed{border-color:#fecaca;background:#fef2f2}.today-sessions strong{display:inline;margin:0;color:#1d4ed8;font-size:12px}.next-market-open{margin-top:12px;padding:10px 12px;border-left:3px solid #2563eb;background:#f8fbff;color:#475569;font-size:13px}.next-market-open strong{color:#1d4ed8}.calendar-actions{display:flex;align-items:end;gap:10px}.year-picker{display:grid;gap:6px;min-width:120px}.year-picker span{color:#475569;font-size:12px;font-weight:800}.year-calendar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.month-card{min-width:0;padding:12px;border:1px solid #edf2f7;border-radius:8px;background:#fbfdff}.month-card h3{margin:0 0 10px;font-size:14px}.weekday-row,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weekday-row{margin-bottom:6px}.weekday-row span{color:#64748b;font-size:11px;font-weight:800;text-align:center}.day-cell{aspect-ratio:1;min-width:0;display:grid;place-items:center;border-radius:6px;border:1px solid transparent;font-size:12px;font-weight:800;cursor:default}.day-cell.open{background:#ecfdf5;color:#047857}.day-cell.closed{background:#fee2e2;color:#991b1b}.day-cell.partial{background:#fef3c7;color:#92400e}.day-cell.override{background:#dbeafe;border-color:#60a5fa;color:#1d4ed8}.day-cell.missing{background:#f8fafc;color:#94a3b8}.day-cell.empty{background:transparent}.day-cell:hover{outline:2px solid #0f172a;outline-offset:1px}.day-cell.today{border:2px solid #2563eb;box-shadow:0 0 0 2px #dbeafe}.override-table{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.override-table small{color:#64748b;font-size:13px}.override-pill{min-height:30px;border:1px solid #fbbf24;border-radius:999px;background:#fffbeb;color:#92400e;padding:5px 10px;font-size:12px;font-weight:800}.usage-history-toolbar,.usage-history-summary{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.usage-history-toolbar{align-items:end;margin-bottom:14px}.usage-history-toolbar label{display:grid;gap:6px;color:#475569;font-size:12px;font-weight:800}.usage-history-toolbar span{align-self:center;color:#64748b;font-size:13px}.usage-history-summary{margin-bottom:14px}.usage-history-summary>div{border:1px solid #dbe5f0;border-radius:8px;padding:12px;background:#f8fafc}.usage-history-summary span,.usage-history-summary strong{display:block}.usage-history-summary span{color:#64748b;font-size:12px}.usage-history-summary strong{margin-top:5px;color:#0f172a;font-size:17px}.usage-chart-wrap{border:1px solid #dbe5f0;border-radius:8px;padding:12px;background:#fff}.usage-chart-key{display:flex;gap:14px;margin-bottom:8px;color:#475569;font-size:12px;font-weight:800}.usage-chart-key span:before{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;content:""}.usage-chart-key .cpu:before{background:#0f766e}.usage-chart-key .memory:before{background:#2563eb}.usage-chart{display:block;width:100%;height:220px;overflow:visible}.usage-chart-grid{stroke:#e2e8f0;stroke-width:2;fill:none}.usage-chart-cpu{stroke:#0f766e;stroke-width:3;fill:none;vector-effect:non-scaling-stroke}.usage-chart-memory{stroke:#2563eb;stroke-width:3;fill:none;vector-effect:non-scaling-stroke}@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.inline-form,.routine-form,.calendar-form,.calendar-today,.limits,.user-row,.user-stats,.routine-stats,.feed-status-grid,.user-columns,.routine-settings,.routine-row,.year-calendar,.setup-grid,.two-col{grid-template-columns:1fr}.calendar-today{align-items:flex-start;flex-direction:column}.usage-history-toolbar,.usage-history-summary{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}nav{grid-template-columns:repeat(3,minmax(0,1fr))}.content{padding:14px}.metric-grid{grid-template-columns:1fr}.topbar,.group-head,.user-main,.routine-main,.toolbar,.calendar-toolbar,.calendar-actions{align-items:stretch;flex-direction:column}.table-row,.audit-row{grid-template-columns:1fr}}.mig-status-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.mig-service{border:1px solid #dbe4ee;border-left:4px solid #64748b;border-radius:10px;padding:14px;display:grid;gap:5px;background:#fff}.mig-service.success{border-left-color:#059669}.mig-service.running{border-left-color:#2563eb}.mig-service.failed{border-left-color:#dc2626}.mig-service.skipped{border-left-color:#d97706}.mig-service span{font-size:12px;color:#64748b}.mig-service strong{text-transform:uppercase}.mig-service small{color:#475569}.mig-console{background:#07111f;border-radius:12px;overflow:hidden;color:#d7e3f4;box-shadow:0 10px 30px #0f172a22}.mig-console-head{display:flex;justify-content:space-between;padding:13px 16px;background:#0f1c2e;border-bottom:1px solid #26364c}.mig-console-head span{color:#8fa4bd;font-size:12px}.mig-console-body{height:min(62vh,680px);overflow:auto;padding:10px 14px;display:flex;flex-direction:column;gap:5px}.mig-console code{display:grid;grid-template-columns:88px 130px 130px 72px minmax(250px,1fr);gap:8px;align-items:start;white-space:normal;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.mig-console code time,.mig-console code>span:first-of-type{color:#8296ad}.mig-console code b{color:#93c5fd}.mig-console code em{font-style:normal;color:#a7f3d0}.mig-console code.failed em{color:#fca5a5}.mig-console code.running em{color:#93c5fd}.mig-console code.skipped em{color:#fcd34d}.mig-console code small{grid-column:2/-1;color:#8fa4bd;word-break:break-all}@media(max-width:900px){.mig-status-summary{grid-template-columns:1fr}.mig-console code{grid-template-columns:72px 1fr}.mig-console code>*{grid-column:auto}.mig-console code small{grid-column:1/-1}}
