:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e7edf2;background:#081019;font-synthesis:none;color-scheme:dark;--bg: #081019;--panel: #101a24;--line: #263544;--soft-line: #1b2a38;--text: #e7edf2;--muted: #93a4b5;--faint: #617486;--accent: #58d5ba;--accent-2: #f0b86a;--danger: #f19aaa}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(180deg,#121f2bf0,#081019fa),radial-gradient(circle at 18% 0%,rgba(88,213,186,.12),transparent 32%)}button,input,select{font:inherit}button,.button{cursor:pointer;border:1px solid #314353;background:#172331;color:var(--text);padding:9px 13px;border-radius:7px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:36px;font-size:13px;font-weight:650}button:hover,.button:hover{background:#203244;border-color:#4a6175}button:disabled{opacity:.45;cursor:not-allowed}button+button,.button{margin-left:8px}.primary{background:var(--accent);color:#06241e;border-color:var(--accent)}a{color:#7de7d0}.shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}aside{min-height:100vh;padding:26px 18px;background:#09111ad1;border-right:1px solid var(--soft-line);position:sticky;top:0;display:flex;flex-direction:column;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:800;letter-spacing:1px;padding:4px 10px 34px}.brand small{display:block;font-size:8px;letter-spacing:1.4px;color:var(--faint);margin-top:5px}.orbit{width:42px;height:42px;display:grid;place-items:center;border:1px solid #2d4f59;border-radius:50%;color:transparent;background:radial-gradient(circle at 35% 35%,#d8fff5,#58d5ba 35%,#102a32 36%);box-shadow:0 0 34px #58d5ba2e;flex:0 0 auto}nav{display:grid;gap:6px}nav button{border:0;background:transparent;text-align:left;justify-content:flex-start;color:#9aabba;padding:12px 13px;margin:0!important;width:100%}nav span{display:inline-grid;place-items:center;width:28px;color:#5f778d}nav .selected{background:#142b32;color:#b5fff0;box-shadow:inset 3px 0 0 var(--accent)}.local{margin-top:auto;font-size:12px;padding:16px 14px;color:#a8b8c7;background:#0f1923;border:1px solid var(--soft-line);border-radius:8px}.local small{display:block;font-size:10px;color:var(--faint);margin-top:8px}.local i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:7px}main{padding:34px clamp(18px,4vw,54px) 54px;width:100%;max-width:1680px}.login{min-height:100vh;width:100%;max-width:none;margin:0;display:grid;place-items:center;padding:24px}.login form,article,.coverage,.modal{background:linear-gradient(180deg,#14202bfa,#0e1822fa);border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 70px #0000003b}.login form{width:min(420px,100%);padding:30px}.login .brand{padding:0 0 28px}.login h1{margin-bottom:22px}.login button{width:100%;margin-top:18px}.login-error{color:var(--danger);margin-bottom:0}header,.row,.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px}header{margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--soft-line)}.eyebrow{font-size:10px;letter-spacing:2px;color:#8091a2}h1{font-size:clamp(28px,4vw,42px);letter-spacing:0;margin:7px 0 0}h2{font-size:16px;font-weight:750;margin:0 0 8px}h3{font-size:15px}.pill,.tag{font-size:11px;border:1px solid #33495a;border-radius:5px;padding:6px 9px;color:#aebdcc;white-space:nowrap;background:#101b26}.pill{color:#91ecd4;background:#102822;border-color:#245844}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}article{padding:22px}article small{font-size:10px;color:#8fa0b0;letter-spacing:.5px}.stats strong{display:block;font-size:34px;font-weight:750;margin:14px 0 5px}.stats em{font-style:normal;font-size:16px;color:#8091a4}.stats p,p{font-size:13px;line-height:1.65}.stats p{margin-bottom:0;color:#7f91a3}.alert{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;background:#2c2517;border:1px solid #654f2b;border-radius:8px;color:#edcf8a;margin-bottom:24px;font-size:13px}.alert.error{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:30;width:min(800px,90vw);box-shadow:0 8px 30px #0008}.alert p{margin:5px 0 0;font-size:12px;color:#c4ad7d}.alert button{white-space:nowrap;background:#3b3220;border-color:#725936}.error{background:#382126;border-color:#74404a;color:var(--danger)}.success{background:#12352d;border-color:#286851;color:#9de8ce}.section-title{margin:29px 0 15px}.section-title span{font-size:12px;color:#7f91a3}.output-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.output{padding:0;overflow:hidden}.image-area{height:300px;background:linear-gradient(180deg,#0910181a,#091018db),radial-gradient(circle at center,#1b3446,#0a121c 68%);display:flex;align-items:center;justify-content:center}.image-area img{width:100%;height:300px;object-fit:contain}.empty-earth{display:flex;align-items:center;flex-direction:column;gap:11px;color:#8da0b2;font-size:13px;text-align:center;padding:24px}.empty-earth b{font-weight:650}.empty-earth span{font-size:11px;color:#60758a}.earth-grid{width:126px;height:126px;border:1px solid #34546a;border-radius:50%;background:linear-gradient(90deg,transparent 48%,rgba(88,213,186,.15) 49%,transparent 51%),repeating-linear-gradient(0deg,transparent 0 20px,rgba(93,128,151,.35) 21px,transparent 22px),repeating-linear-gradient(90deg,transparent 0 25px,rgba(93,128,151,.35) 26px,transparent 27px);box-shadow:0 0 58px #58d5ba1a,inset 0 0 30px #050b12}.output-body{padding:20px}.muted{color:var(--muted)}.coverage{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:20px;gap:15px}.coverage>div{display:flex;gap:10px;min-width:0}.coverage b{display:block;font-size:12px;overflow-wrap:anywhere}.coverage small{display:block;font-size:10px;color:#7f91a3;margin-top:5px}.dot{width:7px;height:7px;border-radius:50%;background:var(--accent-2);flex-shrink:0;margin-top:5px}.dot.ready{background:var(--accent)}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.good{color:#91ecd4;border-color:#2f6954}details{font-size:12px;color:#a6b5c5;margin-bottom:14px}summary{cursor:pointer}details p{font-size:11px}.job{display:flex;align-items:center;gap:14px;margin-bottom:12px}.job>div{flex:1;min-width:0}.job p{margin:6px 0}.blank{text-align:center;padding:70px 24px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#a8b8c7}.field span{text-transform:capitalize}input,select{width:100%;border:1px solid #35495a;border-radius:6px;background:#09131e;color:var(--text);padding:10px;min-width:0}input:focus,select:focus{outline:2px solid rgba(88,213,186,.7);outline-offset:1px}.check{display:flex;align-items:center;gap:10px;font-size:12px;margin:15px 0;color:#b7c5d3}.check input{width:16px;height:16px;accent-color:var(--accent)}.modal-backdrop{position:fixed;inset:0;background:#03080dd1;display:flex;justify-content:center;align-items:center;z-index:10;padding:24px}.modal{padding:26px;max-width:860px;width:100%;max-height:92vh;overflow:auto}.modal>.row{margin-bottom:20px}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#070e16;border:1px solid #1b2a38;border-radius:6px;padding:16px;font-size:11px;max-height:55vh;overflow:auto}.field:has(input[type=checkbox]){display:block}form>.primary{margin-top:10px}@media(max-width:1050px){.shell{grid-template-columns:210px minmax(0,1fr)}aside{padding:20px 14px}.brand{font-size:18px;padding-left:4px}.coverage{grid-template-columns:repeat(3,minmax(0,1fr))}.output-grid,.cards{grid-template-columns:1fr}}@media(max-width:700px){.shell{display:block}aside{position:static;min-height:0;padding:14px}.brand{padding:0 0 12px}nav{display:flex;overflow:auto;padding-bottom:4px}nav button{flex:0 0 auto;font-size:12px;padding:9px 10px}nav span,.local{display:none}main{margin:0;width:100%;padding:22px 16px}header,.section-title,.row,.job{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr}.stats article:not(:first-child){display:none}.coverage,.form-grid{grid-template-columns:1fr}.alert{align-items:flex-start;flex-direction:column}.image-area,.image-area img{height:235px}button+button,.button{margin-left:0;margin-top:8px}.modal-backdrop{padding:8px}}.hour-picker{width:min(760px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:26px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);box-shadow:0 24px 90px #0009}.hour-picker::backdrop{background:#03080dd9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.hour-picker h2{margin:6px 0}.hour-picker fieldset{border:0;padding:0;margin:0;min-width:0}.picker-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:24px 0}.month-navigation{margin-bottom:16px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.hour-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.hour-picker .calendar-grid button,.hour-picker .hour-grid button{margin:0;padding:8px 3px}.weekday{text-align:center;font-size:11px;color:var(--muted);padding-bottom:8px}.hour-picker button[aria-pressed=true]{background:var(--accent);color:#06241e;border-color:var(--accent)}.hour-picker button[aria-current=date]{box-shadow:inset 0 0 0 1px var(--accent)}.hour-picker button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.hour-picker h3{font-size:14px;margin:8px 0 20px}.today-button{margin-top:12px}.picker-summary{display:flex;flex-direction:column;gap:6px;padding:16px;background:#081019;border:1px solid var(--line);border-radius:10px;font-size:14px}.picker-actions{display:flex;justify-content:flex-end;margin-top:22px}@media(max-width:600px){.hour-picker{padding:18px}.picker-columns{grid-template-columns:1fr;gap:18px}}.composition-progress{padding:20px;margin-bottom:20px;border:1px solid var(--line);border-radius:12px;background:var(--panel);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.composition-progress:hover{border-color:#3c5668;box-shadow:0 12px 34px #00000029}.progress-summary{display:flex;align-items:center;justify-content:space-between;gap:16px}.progress-summary p{color:var(--muted);font-size:14px}.progress-summary strong{color:var(--accent);font-size:13px;white-space:nowrap}.composition-steps{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.composition-steps span{padding:6px 10px;border-radius:6px;background:var(--bg);color:var(--muted);font-size:12px}.composition-steps button{min-height:0;padding:6px 10px;border-color:transparent;border-radius:6px;background:var(--bg);color:var(--muted);font-size:12px;font-weight:650;transition:color .16s ease,background .16s ease,border-color .16s ease}.composition-steps button:hover{color:var(--text);background:#172938;border-color:#385365}.composition-steps button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.composition-steps .done{color:var(--accent)}.composition-steps .current{color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.stage-detail{display:flex;align-items:flex-start;gap:10px;margin:-3px 0 16px;padding:12px 14px;border:1px solid var(--soft-line);border-radius:8px;background:#0c1721;animation:stage-detail-in .18s ease-out}.stage-detail-dot{width:7px;height:7px;margin-top:5px;flex:0 0 auto;border-radius:50%;background:var(--accent);box-shadow:0 0 12px #58d5bab3}.stage-detail strong{font-size:12px}.stage-detail p{margin:4px 0 0;font-size:12px;color:var(--muted)}@keyframes stage-detail-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.activity-track{height:4px;border-radius:4px;overflow:hidden;background:var(--line)}.activity-track span{display:block;height:100%;width:35%;background:var(--accent);animation:composition-activity 1.8s ease-in-out infinite alternate}@keyframes composition-activity{0%{transform:translate(-100%)}to{transform:translate(285%)}}@media(prefers-reduced-motion:reduce){.activity-track span{animation:none;width:100%;opacity:.6}}.file-table{overflow-x:auto}.file-table table{width:100%;border-collapse:collapse}.file-table th,.file-table td{padding:14px;text-align:left;border-bottom:1px solid var(--border, #293746)}.file-table td small{display:block;margin-top:6px;color:var(--muted, #91a3b7);overflow-wrap:anywhere}.file-table td:first-child{max-width:400px}.file-actions{display:flex;gap:8px}.file-actions .danger{color:var(--danger)}
