:root{--bg: #0f1115;--panel: #171a21;--panel-2: #1f2330;--line: #2a2f3a;--text: #e6e8ee;--muted: #8b93a7;--accent: #6ea8fe;--accent-2: #b58cff;--ok: #57d9a3;--warn: #f3a259;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%;min-width:0;max-width:100%}textarea{resize:vertical;min-height:90px}.center{display:grid;place-items:center;min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:18px;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{font-weight:700;letter-spacing:.2px}.brand em{color:var(--accent-2);font-style:normal;font-weight:500}.topbar nav a{color:var(--muted)}.topbar .spacer{flex:1}.who{color:var(--muted);font-size:13px;border:1px solid var(--line);padding:3px 8px;border-radius:999px}main{padding:20px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px}.login{width:320px;display:grid;gap:12px}.login h1{margin:0 0 4px;font-size:18px}.login input{width:100%}.btn{background:linear-gradient(180deg,var(--accent),#4d86e6);color:#07101f;border:0;border-radius:8px;padding:9px 14px;font-weight:600}.btn.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}.btn:disabled{opacity:.6;cursor:default}.error{color:var(--warn);font-size:13px}.muted{color:var(--muted)}.layout{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}.cal-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.cal-head h2{margin:0;font-size:18px}.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.dow{color:var(--muted);font-size:12px;text-align:center;padding:4px 0}.cell{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-height:92px;padding:6px}.cell.dim{opacity:.4}.cell .num{font-size:12px;color:var(--muted)}.cell.today{border-color:var(--accent)}.chip{display:block;margin-top:4px;padding:3px 6px;border-radius:6px;background:var(--panel-2);border:1px solid var(--line);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-sub{display:block;color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis}.cal-head .spacer{flex:1}.form{display:grid;gap:10px;min-width:0}.form label{display:grid;gap:4px;font-size:13px;color:var(--muted);min-width:0}.row{display:flex;gap:10px;min-width:0}.row>*{flex:1 1 0;min-width:0}.card{overflow:hidden}.editor{display:grid;grid-template-columns:210px 1fr 268px;gap:14px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}.panel h3{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.panel .group{display:grid;gap:8px;margin-bottom:16px}.tool{width:100%;text-align:left;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px}.tool:hover{border-color:var(--accent)}.swatches{display:flex;gap:6px;flex-wrap:wrap}.swatch{width:24px;height:24px;border-radius:6px;border:1px solid var(--line);cursor:pointer;padding:0}.canvas-stage{background:repeating-conic-gradient(#1b1f2a,#1b1f2a 25%,#232838 0%,#232838 50%) 50% / 22px 22px;border:1px solid var(--line);border-radius:12px;padding:18px;display:grid;place-items:center;min-height:560px}.field{display:grid;gap:4px;font-size:12px;color:var(--muted);margin-bottom:10px}.field-row{display:flex;gap:8px}.field-row>*{flex:1 1 0;min-width:0}.layer{display:flex;align-items:center;gap:6px;padding:6px 7px;border-radius:7px;border:1px solid transparent;cursor:pointer;font-size:12px}.layer:hover{background:var(--panel-2)}.layer.active{border-color:var(--accent);background:var(--panel-2)}.layer .lbl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iconbtn{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:2px 7px;font-size:12px}.iconbtn:hover{border-color:var(--accent)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.draft{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;overflow:hidden}.draft img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#fff;cursor:pointer}.draft-meta{display:flex;align-items:center;gap:6px;padding:7px;font-size:12px}.draft-meta .grow{flex:1}.badge{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:1px 7px;font-size:11px;color:var(--muted)}.review-grid{display:grid;grid-template-columns:260px 1fr;gap:18px;align-items:start}.asset-view img{max-width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:crosshair}.marker{position:absolute;width:16px;height:16px;border:2px solid var(--accent);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.editor-bar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.editor-bar .grow{flex:1}input[type=color]{padding:2px;height:32px}input[type=range]{padding:0}
