:root{font-family:Arial,Helvetica,sans-serif;color:#090909;background:#f5f6f8}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;min-height:58px;padding:0 12px;border-bottom:3px solid #111;background:#fff}.brand{font-weight:800;letter-spacing:0}.legend{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:0;border:1px solid #222}.legend span{min-height:42px;display:grid;place-items:center;padding:4px 8px;border-right:1px solid #222;text-align:center;font-size:13px;font-weight:700}.legend span:last-child{border-right:0}.actions,.admin-actions,.modal-actions{display:flex;align-items:center;gap:8px}button{min-height:34px;border:1px solid #222;border-radius:4px;background:#fff;cursor:pointer}button:hover{background:#eef4ff}.admin-panel{position:sticky;top:58px;z-index:15;display:grid;gap:8px;padding:8px 12px;border-bottom:1px solid #777;background:#eaf1ff}.admin-actions{flex-wrap:wrap}.admin-actions button:disabled{opacity:.45;cursor:not-allowed}.save-state{min-width:96px;padding:4px 8px;border:1px solid #8ca6d9;border-radius:4px;background:#fff;color:#24416f;font-size:13px}.status-editor{max-width:980px}.status-editor summary{width:fit-content;cursor:pointer;font-weight:700}.status-list{display:grid;gap:6px;margin-top:8px}.status-row{display:grid;grid-template-columns:minmax(220px,1fr) 44px auto;gap:6px;align-items:center}.status-row input{min-height:32px;min-width:0;border:1px solid #8ca6d9;border-radius:4px;padding:3px 7px;background:#fff}.status-row input[type=color]{padding:2px}.board{position:relative;width:1800px;height:1040px;margin:0;background:linear-gradient(#e4e4e4 1px,transparent 1px),linear-gradient(90deg,#e4e4e4 1px,transparent 1px),#fff;background-size:20px 20px;overflow:auto}.board.admin{outline:3px dashed #3074d9;outline-offset:-3px}.area{border:2px solid #111;background:#fff;overflow:hidden}.area.selected{box-shadow:inset 0 0 0 3px #3074d9}.area-inner{height:100%;display:flex;flex-direction:column}.area-title{width:fit-content;min-width:135px;padding:4px 8px;background:#c9dcfa;font-size:24px;line-height:1.1}.area-title input{width:220px;border:0;background:transparent;font-size:22px}.area-meta{width:fit-content;margin:4px 8px 0;padding:2px 6px;border:1px solid #8ca6d9;background:#fff;color:#24416f;font-size:11px}.tracks{display:flex;flex-direction:column;gap:14px;padding:10px 12px;overflow:auto}.track{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:start}.track-label{min-height:52px;display:grid;align-content:center;justify-items:end;gap:2px;text-align:right}.track-label strong{font-size:18px;font-weight:500}.track-label small{font-size:10px}.track-label span{font-size:17px}.track-label input{width:96px}.track-admin{width:116px;display:grid;gap:3px}.track-admin input{width:100%;min-height:24px;border:1px solid #999;border-radius:3px;padding:2px 4px;text-align:right;font-size:12px}.track-admin input:first-child{font-weight:700}.track-buttons{display:grid;grid-template-columns:1fr 1fr;gap:4px}.track-buttons button{min-height:24px;padding:0}.cell-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(82px,1fr)}.cell{position:relative;min-width:82px;height:58px;display:grid;grid-template-rows:1fr 20px;border:1px solid #777}.cell input{min-width:0;width:100%;border:0;background:transparent;text-align:center;font-weight:700}.cell-bottom{position:relative;display:grid;border-top:1px solid #777}.cell-bottom input{font-size:12px;font-weight:400}.cell-bottom select{position:absolute;right:0;bottom:0;width:18px;height:18px;opacity:0;cursor:pointer}.cell button{position:absolute;right:1px;top:1px;min-height:18px;width:18px;padding:0;font-size:12px}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#00000059}.modal{width:min(360px,calc(100vw - 32px));display:grid;gap:14px;padding:20px;border:2px solid #111;background:#fff}.modal h2{margin:0}.modal label{display:grid;gap:4px}.modal input{min-height:34px;border:1px solid #777;padding:4px 8px}.error{margin:0;color:#b00020}@media(max-width:900px){.topbar{grid-template-columns:1fr}.legend{grid-template-columns:repeat(2,minmax(130px,1fr))}.status-row{grid-template-columns:1fr 44px}.status-row button{grid-column:1 / -1}}
