:root{--bg0: #0b1220;--bg1: #121b2e;--panel: #172338;--line: #2a3a55;--text: #e8eef8;--muted: #93a4bf;--accent: #2dd4bf;--accent2: #f59e0b;--danger: #f87171;--ok: #34d399;--font: "Segoe UI", "IBM Plex Sans", system-ui, sans-serif;--display: "Segoe UI Semibold", "IBM Plex Sans", system-ui, sans-serif;color:var(--text);background:radial-gradient(1200px 600px at 10% -10%,#1d4e4a55,transparent),radial-gradient(900px 500px at 100% 0%,#7c4a1a33,transparent),linear-gradient(160deg,var(--bg0),var(--bg1));font-family:var(--font);min-height:100%}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:var(--text)}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit;background:transparent;border:1px solid var(--line);border-radius:10px;padding:.55rem .8rem}button{cursor:pointer;background:#1c2b44}button.primary{background:linear-gradient(135deg,#14b8a6,#0f766e);border-color:transparent;color:#042f2e;font-weight:700}button:disabled{opacity:.5;cursor:not-allowed}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{border-right:1px solid var(--line);background:#0d1626cc;padding:1.4rem 1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{font-family:var(--display);font-size:1.5rem;letter-spacing:.04em;margin:0 0 .25rem}.brand span{color:var(--accent)}.side p{color:var(--muted);margin:0 0 1.5rem;font-size:.9rem}.nav{display:flex;flex-direction:column;gap:.4rem}.nav a{padding:.7rem .85rem;border-radius:10px;color:var(--muted)}.nav a.active,.nav a:hover{background:#1a2940;color:var(--text)}.main{padding:1.5rem 1.75rem 2.5rem}.header{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.25rem}.header h1{margin:0;font-family:var(--display);font-size:1.7rem}.header .sub{color:var(--muted);margin-top:.25rem}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1.25rem}.card{background:color-mix(in srgb,var(--panel) 90%,black);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem}.card .label{color:var(--muted);font-size:.85rem}.card .value{font-size:1.6rem;font-weight:700;margin-top:.35rem}.panel{background:color-mix(in srgb,var(--panel) 92%,black);border:1px solid var(--line);border-radius:16px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.1rem;border-bottom:1px solid var(--line)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid #22324a;font-size:.95rem}th{color:var(--muted);font-weight:600}tr:hover td{background:#1a273c55}.stock-low{color:var(--danger);font-weight:700}.stock-ok{color:var(--ok)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem;padding:1.1rem}.field label{display:block;color:var(--muted);font-size:.82rem;margin-bottom:.35rem}.field input{width:100%;background:#0f1a2b}.actions{padding:0 1.1rem 1.1rem;display:flex;gap:.6rem}.err{color:var(--danger);margin:.5rem 0 1rem}.bars{padding:1rem 1.1rem 1.3rem;display:grid;gap:.7rem}.bar-row{display:grid;grid-template-columns:140px 1fr 48px;gap:.6rem;align-items:center}.bar-track{height:10px;background:#0f1a2b;border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2))}.header-actions{display:flex;gap:.5rem;flex-wrap:wrap}.ok{color:var(--ok);margin:.5rem 0 1rem}button.danger{background:#3f1d1d;border-color:#7f1d1d;color:#fecaca}.date-bar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:end;margin-bottom:1.1rem;padding:.85rem 1rem;background:#121c2ecc;border:1px solid var(--line);border-radius:12px}.date-bar label{display:grid;gap:.25rem;color:var(--muted);font-size:.8rem}.date-bar input[type=date]{background:#0f1a2b;min-width:150px}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#02061799;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:40}.drawer-scrim.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;height:100vh;width:min(720px,96vw);background:#0f172a;border-left:1px solid var(--line);transform:translate(105%);transition:transform .22s ease;z-index:50;display:flex;flex-direction:column}.drawer.open{transform:translate(0)}.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.1rem;border-bottom:1px solid var(--line)}.drawer-body{overflow:auto;flex:1}@media(max-width:860px){.app-shell{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line)}}.login-screen{min-height:100vh;display:grid;place-items:center;position:relative;overflow:hidden;padding:1.5rem}.login-orb{position:absolute;border-radius:50%;filter:blur(40px);opacity:.45;pointer-events:none}.login-orb-a{width:420px;height:420px;background:#0f766e;top:-80px;left:-60px}.login-orb-b{width:380px;height:380px;background:#92400e;bottom:-100px;right:-40px}.login-card{width:min(420px,100%);background:#0f172ae6;border:1px solid var(--line);border-radius:20px;padding:1.6rem 1.5rem 1.3rem;display:grid;gap:.85rem;position:relative;z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-brand{font-family:var(--display);font-size:2rem;letter-spacing:.04em}.login-brand span{color:var(--accent)}.login-sub{margin:0;color:var(--muted)}.login-btn{width:100%;padding:.8rem;margin-top:.3rem}.login-hint{margin:0;color:var(--muted);font-size:.8rem;text-align:center}.login-card .field span{display:block;color:var(--muted);font-size:.82rem;margin-bottom:.35rem}.login-card .field input{width:100%;background:#0b1220}.side-user{color:var(--accent);margin:0 0 1rem;font-size:.9rem}.term-select-wrap{display:grid;gap:.3rem;margin-bottom:.6rem;color:var(--muted);font-size:.78rem}.term-select-wrap select{width:100%;background:#0f1a2b;border:1px solid var(--line);border-radius:10px;padding:.55rem .65rem;color:var(--text)}.side-term-hint{color:var(--muted);font-size:.78rem;margin:0 0 1rem}.logout-btn{margin-top:auto;width:100%;margin-top:1.5rem}.term-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.term-card{text-align:left;background:#121c2e;border:1px solid var(--line);border-radius:16px;padding:1.1rem;position:relative;display:grid;gap:.45rem}.term-card.active{border-color:var(--accent);box-shadow:0 0 0 1px #2dd4bf55}.term-id{font-weight:700;font-size:1.15rem}.term-name{color:var(--muted)}.term-meta{display:flex;justify-content:space-between;gap:.5rem;font-size:.88rem}.term-sync{color:var(--muted);font-size:.75rem}.term-badge{position:absolute;top:.8rem;right:.8rem;background:#115e59;color:#ccfbf1;font-size:.72rem;padding:.2rem .45rem;border-radius:999px}.create-term-row{display:flex;gap:.6rem;flex-wrap:wrap;padding:0 0 .75rem}.create-term-row input,.create-term-row select,.term-edit-row input,.term-edit-row select{flex:1;min-width:140px;background:#0b1220;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:.65rem .8rem}.term-edit-row{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}table select{max-width:220px;background:#0b1220;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:.35rem .5rem}table input[type=number]{background:#0b1220;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:.35rem .5rem}tr.slot-empty td{opacity:.85}.product-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;padding:0 0 .85rem}.product-form label{display:grid;gap:.35rem;font-size:.82rem;color:var(--muted)}.product-form label.wide{grid-column:1 / -1}.product-form input,.product-form select{background:#0b1220;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:.55rem .7rem}.product-form-actions{grid-column:1 / -1;display:flex;gap:.5rem}.sync-code-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;margin-bottom:.5rem;background:#0f2a24;border:1px solid #134e4a;border-radius:12px}.sync-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.35rem;letter-spacing:.08em;color:#5eead4;font-weight:700}.sync-code.sm{font-size:1rem}.term-code-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.linkish{color:#67e8f9;font-size:.8rem;text-decoration:underline;cursor:pointer}.side{display:flex;flex-direction:column}
