:root{--bg: #0a0d0f;--panel: #10161a;--panel-alt: #0c1114;--line: rgba(180, 220, 230, .14);--line-strong: rgba(180, 220, 230, .34);--text: #e7f2f5;--text-dim: #7d939a;--text-faint: #465158;--accent: #8fe3f2;--amber: #ffb454;--red: #ff5d5d;--green: #7cf29c;--font-sans: "Space Grotesk", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--space-4: 4px;--space-8: 8px;--space-16: 16px;--space-24: 24px;--space-32: 32px;--space-48: 48px;--space-64: 64px;--space-96: 96px;--radius-none: 0px;--radius-sm: 2px;--glow-accent: 0 0 18px -2px #8fe3f2;--glow-red: 0 0 18px -2px #ff5d5d}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans)}a{color:inherit}.mono{font-family:var(--font-mono)}.label{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim)}.colhead{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}.frame{position:relative}.corner{position:absolute;width:12px;height:12px}.corner.tl{top:-1px;left:-1px;border-top:2px solid var(--accent);border-left:2px solid var(--accent)}.corner.tr{top:-1px;right:-1px;border-top:2px solid var(--accent);border-right:2px solid var(--accent)}.corner.bl{bottom:-1px;left:-1px;border-bottom:2px solid var(--accent);border-left:2px solid var(--accent)}.corner.br{bottom:-1px;right:-1px;border-bottom:2px solid var(--accent);border-right:2px solid var(--accent)}.frame-lg .corner{width:16px;height:16px}.shell{display:flex;height:100vh;min-height:640px;overflow:hidden}.sidebar{width:232px;flex-shrink:0;background:var(--panel-alt);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:28px 0}.brand{padding:0 24px 28px;display:flex;align-items:center;gap:10px}.brand span{font-family:var(--font-mono);font-size:13px;letter-spacing:.16em;font-weight:600}.nav{display:flex;flex-direction:column;gap:2px}.navitem{display:flex;align-items:center;gap:12px;padding:12px 16px;text-decoration:none;color:var(--text-dim);border-left:2px solid transparent;font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.navitem:hover{color:var(--text)}.navitem-active{color:var(--accent);border-left-color:var(--accent);background:#8fe3f20f}.sidebar-foot{margin-top:auto;padding:20px 24px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}.sidebar-foot span.mono{font-size:11px;color:var(--text-dim);letter-spacing:.08em}.dot-live{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;animation:blink 1.8s ease-in-out infinite}.shell-main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:72px;flex-shrink:0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px}.eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.24em;color:var(--accent);margin-bottom:4px}.page-title{font-size:20px;font-weight:600}.topbar-actions{display:flex;align-items:center;gap:20px}.content{flex:1;overflow:auto;padding:28px 36px 40px;display:flex;flex-direction:column;gap:22px}.btn{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:10px 16px;cursor:pointer;transition:all .16s ease;border-radius:var(--radius-sm);background:transparent;text-decoration:none;display:inline-block;line-height:1.2}.btn-primary{border:1px solid var(--accent);color:var(--accent)}.btn-primary:hover{background:#8fe3f21f;box-shadow:var(--glow-accent)}.btn-ghost{border:1px solid var(--line-strong);color:var(--text-dim)}.btn-ghost:hover{border-color:var(--text-dim);color:var(--text)}.btn-ghost:disabled{opacity:.3;cursor:not-allowed}.btn-danger{border:1px solid var(--red);color:var(--red)}.btn-danger:hover{background:#ff5d5d1a}.btn-sm{padding:7px 12px;font-size:10px}.btn-block{display:block;width:100%;text-align:center;padding:15px 24px;font-size:12px;letter-spacing:.14em}.btn-block.btn-primary{background:#8fe3f20f}.iconbtn{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:transparent;color:var(--text-dim);cursor:pointer;border-radius:var(--radius-sm)}.iconbtn:hover{border-color:var(--line-strong);color:var(--text)}.iconbtn:disabled{opacity:.3;cursor:not-allowed}.link-btn{background:transparent;border:none;padding:0;cursor:pointer;text-decoration:none;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.seg{display:flex;border:1px solid var(--line-strong)}.seg a{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:10px 16px;color:var(--text-dim)}.seg a.active{color:var(--accent);background:#8fe3f214}.field-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);display:block;margin-bottom:8px}.field-input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line-strong);color:var(--text);font-family:var(--font-mono);font-size:14px;padding:10px 2px;outline:none}.field-input:focus{border-bottom-color:var(--accent)}.field-input::placeholder{color:var(--text-faint)}.field-input.sm{font-size:13px;padding:9px 2px}.box-input{width:100%;background:var(--panel-alt);border:1px solid var(--line-strong);color:var(--text);font-family:var(--font-mono);font-size:12px;padding:10px 12px;outline:none;border-radius:var(--radius-sm)}.box-input:focus{border-color:var(--accent)}.box-input::placeholder{color:var(--text-faint)}.check{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;border:1px solid var(--line-strong);background:var(--panel-alt);cursor:pointer;position:relative;flex-shrink:0;margin:0}.check:checked{border-color:var(--accent);background:#8fe3f21f}.check:checked:after{content:"";position:absolute;left:5px;top:1px;width:6px;height:11px;border:solid var(--accent);border-width:0 2px 2px 0;transform:rotate(45deg)}.check:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.check.sm{width:16px;height:16px}.check.sm:checked:after{left:4px;top:0;width:5px;height:9px}.tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border:1px solid currentColor;display:inline-block;white-space:nowrap;flex-shrink:0}.stat{border:1px solid var(--line);background:var(--panel);padding:16px 20px;display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit}a.stat:hover{border-color:var(--line-strong)}.stat-value{font-family:var(--font-mono);font-size:26px;font-weight:600}.stat-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.track{position:relative;height:10px;background:repeating-linear-gradient(90deg,rgba(70,81,88,.7) 0 4px,transparent 4px 7px)}.fill{position:absolute;left:0;top:0;bottom:0;background:repeating-linear-gradient(90deg,#8fe3f2 0 4px,transparent 4px 7px)}.track.lg{height:18px;background:repeating-linear-gradient(90deg,rgba(70,81,88,.7) 0 6px,transparent 6px 9px)}.track.lg .fill{background:repeating-linear-gradient(90deg,#8fe3f2 0 6px,transparent 6px 9px);filter:drop-shadow(0 0 6px rgba(143,227,242,.6));transition:width .3s ease}.list-card{border:1px solid var(--line);background:var(--panel)}.job-grid{display:grid;grid-template-columns:28px 84px minmax(0,1.1fr) minmax(0,1.3fr) 140px 130px 264px;align-items:center;gap:16px;padding:14px 16px}.job-head{border-bottom:1px solid var(--line-strong)}.jobrow{border-bottom:1px solid var(--line)}.jobrow:hover{background:#8fe3f208}.grip{cursor:grab;color:var(--text-faint);display:flex;align-items:center}.form-panel{border:1px solid var(--line-strong);background:var(--panel);padding:24px 28px;display:flex;flex-direction:column;gap:18px}.form-grid{display:grid;grid-template-columns:1.4fr .5fr 1fr 1fr;gap:24px}.form-actions{display:flex;gap:12px;justify-content:flex-end}.form-title{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.row-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center}.hint{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--text-faint)}.detail-head{display:flex;align-items:flex-end;justify-content:space-between}.progress-panel{border:1px solid var(--line-strong);background:var(--panel);padding:26px 30px;display:grid;grid-template-columns:200px 1fr;gap:36px;align-items:center}.big-pct{font-family:var(--font-mono);font-size:64px;font-weight:700;line-height:1;color:var(--accent)}.big-pct small{font-size:24px;color:var(--text-faint);margin-left:4px}.two-col{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:24px;align-items:start}.panel{border:1px solid var(--line);background:var(--panel)}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line-strong)}.panel-foot{display:flex;gap:12px;padding:16px 20px;align-items:center}.trow{border-bottom:1px solid var(--line)}.todo-line{display:flex;align-items:flex-start;gap:14px;padding:14px 20px}.rowbtn{background:transparent;border:none;padding:0;margin:0;font-family:var(--font-sans);font-size:15px;font-weight:500;text-align:left;cursor:pointer;line-height:1.3}.rowbtn:hover{color:var(--accent)}.todo-expanded{padding:0 20px 18px 54px;display:flex;flex-direction:column;gap:12px}.note{border-left:2px solid var(--line-strong);padding:2px 0 2px 12px;display:flex;flex-direction:column;gap:4px}.meta{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--text-faint)}.meta.dim{color:var(--text-dim)}.thumb{width:64px;height:48px;border:1px solid var(--line-strong);background:var(--panel-alt);position:relative;display:flex;align-items:center;justify-content:center;color:var(--text-faint)}.thumb-l{position:absolute;bottom:2px;left:4px;font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;color:var(--text-faint)}.part{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.indent{padding-left:34px}.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.dow{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);padding:0 4px 8px}.cell{display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:8px;height:112px;width:100%;text-align:left;border:1px solid var(--line);background:var(--panel);cursor:pointer;color:var(--text);font-family:var(--font-mono);overflow:hidden}.cell:hover{border-color:var(--line-strong)}.cell:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cell.out{opacity:.4}.cell.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.legend{display:flex;gap:18px}.legend span{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--text-dim);display:flex;align-items:center;gap:6px}.legend i{width:7px;height:7px;border-radius:50%;display:inline-block}.stat-sm{border:1px solid var(--line);background:var(--panel);padding:12px 14px;display:flex;flex-direction:column;gap:4px}.login-scene{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.grid-tex{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.6;background-image:linear-gradient(rgba(143,227,242,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(143,227,242,.08) 1px,transparent 1px);background-size:32px 32px}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 50%,transparent 0%,var(--bg) 72%)}.ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--accent);opacity:.5}.ring circle.spin{animation:spin 40s linear infinite;transform-origin:320px 320px}.login-card{position:relative;width:420px;max-width:calc(100vw - 32px);background:#10161af0;border:1px solid var(--line-strong);padding:44px 40px;animation:boot 1.2s ease-out 1}.login-card form{display:flex;flex-direction:column;gap:22px}.form-error{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--red)}@keyframes blink{0%,to{opacity:1}50%{opacity:.2}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes boot{0%{opacity:0}4%{opacity:1}8%{opacity:.3}12%{opacity:1}to{opacity:1}}@media (prefers-reduced-motion: reduce){.dot-live,.ring circle.spin,.login-card{animation:none}}.boot{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:.24em;color:var(--accent)}.toast{position:fixed;right:24px;bottom:24px;z-index:50;background:var(--panel);border:1px solid var(--red);padding:12px 16px;max-width:420px}.form-info{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--text-dim);line-height:1.5}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.version-tag{padding:12px 24px 0;font-size:9px;letter-spacing:.16em;color:var(--text-faint);display:flex;align-items:center;justify-content:space-between}.sidebar-foot span.mono{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.part-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.part-field{display:flex;flex-direction:column;gap:2px;min-width:0}.field-input[type=date],select.field-input{color-scheme:dark;border-radius:0}select.field-input{cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}select.field-input option{background:var(--panel);color:var(--text)}.thumb{overflow:hidden}.thumb-link{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-x{position:absolute;top:0;right:0;min-width:16px;height:16px;padding:0 3px;border:none;border-left:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:#0a0d0fd9;color:var(--text-dim);font-family:var(--font-mono);font-size:10px;line-height:1;cursor:pointer}.thumb-x:hover{color:var(--text)}.thumb-x.danger{color:var(--red)}.simple-grid{display:grid;grid-template-columns:84px minmax(0,1.1fr) minmax(0,1.3fr) 80px 140px 250px;align-items:center;gap:16px;padding:14px 16px}.cust-grid{display:grid;grid-template-columns:minmax(0,1fr) 200px minmax(0,1.4fr) 140px;align-items:center;gap:16px;padding:14px 16px}.cust-job{font-size:14px;text-decoration:none;color:var(--text)}.cust-job:hover{color:var(--accent)}.inline-title{display:flex;align-items:center;gap:8px;min-width:0}.edit-pencil{width:22px;height:22px;padding:0;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:transparent;color:var(--text-dim);cursor:pointer;border-radius:var(--radius-sm);opacity:0;transition:opacity .12s ease}.trow:hover .edit-pencil,.edit-pencil:focus-visible{opacity:1}.edit-pencil:hover{border-color:var(--accent);color:var(--accent)}.edit-pencil:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (hover: none){.edit-pencil{opacity:.6}}.inline-title-input{font-family:var(--font-sans);font-size:15px;font-weight:500;padding:2px 2px 4px;border-bottom-color:var(--accent)}.todo-line-click{cursor:pointer;align-items:center}.todo-line-click .check{align-self:flex-start;margin-top:2px}.trow-open{background:#8fe3f208}.open-btn{min-width:76px;text-align:center;flex-shrink:0}.todo-expanded{border-top:1px solid var(--line);padding-top:14px}.sub-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:6px;margin-top:4px}.add-row{display:flex;gap:10px;align-items:center}.add-row .box-input{flex:1}.thumb-lg{width:112px;height:84px}.sync-panel{border:1px solid var(--line);background:var(--panel);padding:18px 20px;display:flex;flex-direction:column;gap:14px}.sync-btn{padding:12px 16px;font-size:11px}.link-btn:disabled{opacity:.4;cursor:not-allowed}.push-status{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:6px}.push-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.connect-form{display:flex;flex-direction:column;gap:14px;border:1px solid var(--line);padding:14px 14px 16px;background:var(--panel-alt)}.connect-form .field-label{font-size:10px;margin-bottom:4px}
