:root{--bg: #f7f7f9;--panel: #ffffff;--border: #e1e4ea;--text: #1c1f24;--muted: #6b7280;--accent: #2c5282;--danger: #c53030;--success: #2f855a}body[data-can-edit=false] .editor-only{display:none!important}body[data-can-edit=false] .editor-only-form{pointer-events:none;opacity:.7}body[data-can-edit=false] .editor-only-form input,body[data-can-edit=false] .editor-only-form select,body[data-can-edit=false] .editor-only-form textarea,body[data-can-edit=false] .editor-only-form button{pointer-events:none}body[data-can-edit=false] .edit-link{pointer-events:none;color:inherit;text-decoration:none;cursor:default}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Helvetica,Arial,sans-serif;font-size:14px;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer;padding:6px 12px;border:1px solid var(--border);background:var(--panel);border-radius:4px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{background:var(--danger);color:#fff;border-color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}input,select{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:#fff}input[type=number]{width:100px}label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}label>input,label>select{color:var(--text)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:16px;margin-bottom:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spacer{flex:1}table{width:100%;border-collapse:collapse}th,td{padding:8px;text-align:left;border-bottom:1px solid var(--border)}th{background:#f0f1f4;font-weight:600}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{background:#e6e8ed}.sort-arrow{display:inline-block;font-size:10px;margin-left:4px;opacity:.7;width:10px}tbody tr{transition:background .08s ease}tbody tr:hover{background:#f6f8fb}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}input[type=search]{font:inherit;padding:6px 10px;border:1px solid var(--border);border-radius:4px;background:#fff;min-width:200px}.muted{color:var(--muted)}.error{color:var(--danger)}.cost{font-weight:600;color:var(--success)}
