*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0e0e12;--surface:#16161d;--surface2:#1e1e28;--border:#2a2a38;--text:#e8e8f0;--muted:#5a5a78;--accent:#7c6af7;--accent2:#4dd9ac;--danger:#f76a6a;--warn:#f7a44a}body{background:var(--bg);font-family:'JetBrains Mono',monospace;color:var(--text);min-height:100vh;padding:32px 20px}.container{max-width:760px;margin:0 auto}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:12px}h1{font-family:'Unbounded',sans-serif;font-size:1.4rem;letter-spacing:-0.5px}.mode-toggle{display:flex;gap:6px}.mode-btn{padding:7px 16px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--muted);font-family:inherit;font-size:0.78rem;cursor:pointer;transition:all 0.2s}.mode-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.progress-wrap{margin-bottom:20px}.progress-meta{font-size:0.72rem;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:6px}.progress-bar{height:3px;background:var(--border);border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:99px;transition:width 0.4s}.group-block{margin-bottom:6px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.group-block.g-hidden{display:none}.group-title{background:var(--surface2);padding:8px 16px;font-size:0.68rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px}.group-title::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.group-title-text{flex:1}.group-timer{font-size:0.68rem;color:var(--accent2);font-variant-numeric:tabular-nums;letter-spacing:0}.report-btns{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.report-btns-wrap{display:flex;gap:15px;margin-top:14px;flex-wrap:wrap;width:100%}.report-btn{padding:8px 16px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-family:inherit;font-size:0.78rem;cursor:pointer;transition:all 0.2s}.report-btn:hover{border-color:var(--accent2);color:var(--accent2)}.report-btn.copied{border-color:var(--accent2);color:var(--accent2)}.save-btn{margin-left:auto}.start-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;gap:16px}.start-screen p{font-size:0.82rem;color:var(--muted);line-height:1.6;max-width:340px}.start-btn{padding:14px 36px;background:var(--accent);border:none;border-radius:10px;color:#fff;font-family:inherit;font-size:0.9rem;font-weight:600;cursor:pointer;letter-spacing:0.5px;transition:background 0.2s,transform 0.1s}.start-btn:hover{background:#6a58e0}.start-btn:active{transform:scale(0.97)}.start-form{width:100%;max-width:340px;display:flex;flex-direction:column;gap:10px;text-align:left}.start-form-row{display:flex;flex-direction:column;gap:4px}.start-form label{font-size:0.68rem;color:var(--muted);letter-spacing:1px;text-transform:uppercase}.start-form input,.start-form select{background:var(--surface2);border:1px solid var(--border);border-radius:7px;color:var(--text);font-family:inherit;font-size:0.85rem;padding:8px 10px;outline:none;transition:border-color 0.15s;width:100%}.start-form input:focus,.start-form select:focus{border-color:var(--accent)}.start-form select option{background:var(--surface2)}.project-actions{display:flex;gap:6px;margin-top:2px}.project-add-btn,.project-del-btn{flex:1;padding:5px 8px;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--muted);font-family:inherit;font-size:0.72rem;cursor:pointer;transition:all 0.15s}.project-add-btn:hover{border-color:var(--accent2);color:var(--accent2)}.project-del-btn:hover{border-color:var(--danger);color:var(--danger)}.required-mark{color:var(--danger);font-size:0.8em}.start-btn:disabled{background:var(--border);cursor:not-allowed;opacity:0.5;transform:none}.item-row{background:var(--surface);border-top:1px solid var(--border);display:flex;align-items:center;gap:10px;padding:11px 16px;transition:background 0.15s;user-select:none}.item-row.locked{opacity:0.35}.item-row.st-ok{background:rgba(77,217,172,0.05)}.item-row.st-fail{background:rgba(247,106,106,0.06)}.item-row.st-na{background:rgba(90,90,120,0.08)}.item-row.st-skip{opacity:0.3}.trigger-row{border:1px solid var(--border);border-radius:8px;margin-bottom:4px;background:var(--surface2)!important}.trigger-label{font-weight:500}.item-num{font-size:0.65rem;color:var(--muted);min-width:20px;text-align:right;flex-shrink:0}.item-label-run{flex:1;font-size:0.88rem;line-height:1.4}.item-row.locked .item-label-run{color:var(--muted)}.item-row.st-ok .item-label-run{color:var(--muted)}.item-row.st-fail .item-label-run{color:var(--muted)}.item-row.st-na .item-label-run{color:var(--muted)}.state-btns{display:flex;gap:4px;flex-shrink:0}.sb{min-width:28px;height:28px;padding:0 6px;border-radius:6px;border:1.5px solid var(--border);background:transparent;color:var(--muted);font-size:0.85rem;cursor:pointer;transition:all 0.15s;display:flex;align-items:center;justify-content:center;font-family:inherit}.sb:disabled{opacity:0.2;cursor:not-allowed}.sb.ok{border-color:var(--accent2);color:var(--accent2);background:rgba(77,217,172,0.12)}.sb.fail{border-color:var(--danger);color:var(--danger);background:rgba(247,106,106,0.12)}.sb.na{border-color:var(--muted);color:var(--muted);background:rgba(90,90,120,0.15)}.sb:not(:disabled):hover{filter:brightness(1.3)}.trigger-tag{font-size:0.6rem;padding:2px 7px;border-radius:4px;background:rgba(124,106,247,0.12);color:var(--accent);border:1px solid rgba(124,106,247,0.25);flex-shrink:0;white-space:nowrap}.timer{font-size:0.72rem;color:var(--muted);min-width:46px;text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}.item-row.active .timer{color:var(--accent2)}.item-row.st-ok .timer,.item-row.st-fail .timer,.item-row.st-na .timer{color:var(--accent2)}.reset-btn{margin-top:18px;padding:9px 18px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-family:inherit;font-size:0.78rem;cursor:pointer;transition:all 0.2s}.reset-btn:hover{border-color:var(--danger);color:var(--danger)}#editor{display:none}#editor.visible{display:block}#runner.hidden{display:none}.editor-group{border:1px solid var(--border);border-radius:10px;margin-bottom:10px;overflow:hidden}.editor-group-head{background:var(--surface2);padding:10px 14px;display:flex;align-items:center;gap:8px}.editor-group-head input{flex:1;background:transparent;border:none;color:var(--text);font-family:inherit;font-size:0.82rem;font-weight:600;outline:none}.editor-group-head input::placeholder{color:var(--muted)}.group-opts{display:flex;align-items:center;gap:6px;flex-shrink:0}.group-opts label{font-size:0.68rem;color:var(--muted);white-space:nowrap}.toggle-hidden{appearance:none;width:30px;height:16px;background:var(--border);border-radius:99px;position:relative;cursor:pointer;transition:background 0.2s;flex-shrink:0}.toggle-hidden:checked{background:var(--warn)}.toggle-hidden::after{content:'';position:absolute;left:2px;top:2px;width:12px;height:12px;background:#fff;border-radius:50%;transition:left 0.2s}.toggle-hidden:checked::after{left:16px}.icon-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:0.9rem;padding:2px 5px;border-radius:4px;transition:all 0.15s;font-family:inherit}.icon-btn:hover{background:var(--border);color:var(--text)}.icon-btn.del:hover{color:var(--danger)}.editor-item{background:var(--surface);border-top:1px solid var(--border);padding:8px 14px;display:flex;align-items:flex-start;gap:8px}.item-ta{flex:1;background:transparent;border:none;color:var(--text);font-family:inherit;font-size:0.85rem;outline:none;resize:none;overflow:hidden;line-height:1.5;min-height:1.5em;padding:2px 0 0}.item-ta::placeholder{color:var(--muted)}.item-side{display:flex;align-items:center;gap:4px;flex-shrink:0;padding-top:1px}.dragging-item{opacity:0.3}.drop-zone{height:0;overflow:visible;position:relative;z-index:10}.drop-zone::after{content:'';display:block;height:3px;background:var(--accent);border-radius:2px;opacity:0;transition:opacity 0.1s;margin:0 8px}.drop-zone.drop-active::after{opacity:1}.trigger-select{background:var(--surface2);border:1px solid var(--border);color:var(--text);font-family:inherit;font-size:0.7rem;padding:3px 7px;border-radius:6px;outline:none;cursor:pointer;max-width:150px}.trigger-select option{background:#1e1e28}.add-item-btn{border-top:1px dashed var(--border);background:transparent;padding:9px 14px;width:100%;text-align:left;font-family:inherit;font-size:0.78rem;color:var(--muted);cursor:pointer;border-left:none;border-right:none;border-bottom:none;transition:color 0.2s}.add-item-btn:hover{color:var(--accent2)}.add-group-btn{width:100%;padding:11px;background:transparent;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-family:inherit;font-size:0.8rem;cursor:pointer;transition:all 0.2s;margin-bottom:10px}.add-group-btn:hover{border-color:var(--accent2);color:var(--accent2)}.drag-handle{color:var(--border);cursor:grab;font-size:1rem;padding:0 4px;flex-shrink:0;user-select:none;transition:color 0.15s}.drag-handle:hover{color:var(--muted)}.editor-group-head.drop-zone-before{border-top:3px solid var(--accent)}.editor-group-head.drop-zone-after{border-bottom:3px solid var(--accent)}.lib-drop-zone{height:6px;margin:1px 0;border-radius:3px;transition:background 0.1s}.lib-drop-zone.drop-active{background:var(--accent)}.edit-code-badge{font-size:0.65rem;font-weight:700;letter-spacing:1px;color:var(--accent);white-space:nowrap;flex-shrink:0;user-select:none}#library{display:none}#library.visible{display:block}.library-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:10px;flex-wrap:wrap}.library-header h2{font-family:'Unbounded',sans-serif;font-size:1rem;color:var(--muted);letter-spacing:1px}.cl-list{display:flex;flex-direction:column;gap:6px}.cl-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;display:flex;align-items:center;gap:12px;transition:border-color 0.15s}.cl-item:hover{border-color:var(--accent)}.cl-item-title{flex:1;font-size:0.9rem;font-weight:600;color:var(--text)}.cl-item-main{flex:1;display:flex;flex-direction:column;gap:4px;cursor:pointer;min-width:0}.cl-item-memo{font-size:0.72rem;color:var(--muted);line-height:1.4;white-space:pre-wrap}.cl-item[draggable="true"]{cursor:grab}.cl-item.dragging-item{opacity:0.4}.editor-group[draggable="true"]{cursor:default}.cl-item-meta{font-size:0.7rem;color:var(--muted);white-space:nowrap}.cl-item-actions{display:flex;gap:4px}.cl-new-btn{width:100%;padding:14px;background:transparent;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-family:inherit;font-size:0.82rem;cursor:pointer;transition:all 0.2s;margin-top:8px}.cl-new-btn:hover{border-color:var(--accent2);color:var(--accent2)}.back-btn{padding:6px 12px;background:transparent;border:1px solid var(--border);border-radius:7px;color:var(--muted);font-family:inherit;font-size:0.75rem;cursor:pointer;transition:all 0.15s}.back-btn:hover{color:var(--text);border-color:var(--text)}.brand-header{display:flex;align-items:center;gap:16px;padding:18px 0 20px;border-bottom:1px solid var(--border);margin-bottom:28px}.brand-logo{flex-shrink:0;height:36px;width:auto}.brand-text{flex:1;display:flex;flex-direction:column;gap:2px}.brand-title{font-family:'JetBrains Mono',monospace;font-size:0.75rem;font-weight:600;color:var(--text);letter-spacing:0.5px;line-height:1.3}.brand-sub{font-size:0.65rem;color:var(--muted);letter-spacing:1.5px;text-transform:uppercase}.user-info{display:flex;column-gap:10px}.user-name{font-family:'JetBrains Mono',monospace;font-size:0.75rem;font-weight:600;color:var(--text);letter-spacing:0.5px;line-height:1.3}.user-role{font-size:0.65rem;color:var(--muted);letter-spacing:1.5px}.user-logout{cursor:pointer;font-size:1.25rem}.user-logout:hover{color:var(--danger);transition:color 0.2s,transform 0.1s}.saved-sessions{font-family:'JetBrains Mono',monospace;font-size:0.85rem;font-weight:400;color:var(--text);letter-spacing:0.5px;line-height:1.3;text-decoration:none}.saved-sessions td{padding:5px}.saved-sessions a{color:var(--text)}.saved-sessions a:hover{color:var(--accent);transition:color 0.2s,transform 0.1s}