*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8f9fa;--surface:#fff;--border:#dee2e6;--text:#212529;--text-muted:#868e96;--accent:#228be6;--accent-hover:#1c7ed6;--danger:#fa5252;--danger-hover:#e03131;--done-bg:#f1fdf4;--done-text:#2b8a3e;--group-bg:#f1f3f5;--progress-bg:#e9ecef;--progress-fill:#51cf66;--btn-hover-border:#adb5bd;--danger-subtle:#fff5f5;--warning-bg:#fff9db;--warning-border:#ffe066;--warning-text:#7c5a00;--add-child-hover-bg:#e8f5e9;--add-child-hover-text:#2e7d32;--dropdown-shadow:0 4px 12px #0000001f;--focus-ring:#228be626;--radius:6px;--shadow:0 1px 3px #00000014}@media (prefers-color-scheme:dark){:root{--bg:#1a1b1e;--surface:#25262b;--border:#373a40;--text:#c1c2c5;--text-muted:#5c5f66;--accent:#4dabf7;--accent-hover:#74c0fc;--danger:#ff6b6b;--danger-hover:#fa5252;--done-bg:#1a2e22;--done-text:#69db7c;--group-bg:#2c2e33;--progress-bg:#373a40;--progress-fill:#51cf66;--btn-hover-border:#5c5f66;--danger-subtle:#2d1515;--warning-bg:#2d2608;--warning-border:#5c4a00;--warning-text:#ffd43b;--add-child-hover-bg:#1a2e22;--add-child-hover-text:#69db7c;--dropdown-shadow:0 4px 12px #0006;--focus-ring:#4dabf733;--shadow:0 1px 3px #0006}}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.5}.topbar{z-index:100;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:16px;min-width:0;display:flex}.app-title{letter-spacing:-.3px;white-space:nowrap;color:var(--accent);font-size:18px;font-weight:700}.progress-summary{color:var(--text-muted);white-space:nowrap;font-size:13px}.progress-summary .done{color:var(--done-text);font-weight:600}.progress-summary .muted{color:var(--text-muted)}.topbar-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;padding:6px 12px;font-size:13px;transition:background .1s,border-color .1s;display:inline-flex}.btn:hover{background:var(--group-bg);border-color:var(--btn-hover-border)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-sm{padding:3px 8px;font-size:12px}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:var(--danger-subtle)}.btn-icon{border-radius:var(--radius);width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;transition:background .1s,color .1s;display:inline-flex}.btn-delete:hover{background:var(--danger-subtle);color:var(--danger)}.template-wrapper{position:relative}.dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--dropdown-shadow);z-index:200;min-width:220px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.dropdown-item{cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 14px;font-size:13px;transition:background .1s;display:flex}.dropdown-item:hover{background:var(--group-bg)}.dropdown-item strong{font-weight:600}.dropdown-item span{color:var(--text-muted);font-size:12px}.warning-banner{background:var(--warning-bg);border-bottom:1px solid var(--warning-border);color:var(--warning-text);flex-direction:column;gap:4px;padding:10px 40px 10px 20px;font-size:13px;display:flex;position:relative}.warning-close{cursor:pointer;color:var(--warning-text);background:0 0;border:none;font-size:14px;position:absolute;top:10px;right:12px}.filterbar{z-index:90;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 20px;display:flex;position:sticky;top:53px}.filter-search{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:160px;color:var(--text);outline:none;padding:5px 10px;font-size:13px}.filter-search:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--focus-ring)}.filter-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;outline:none;padding:5px 8px;font-size:13px}.filter-select:focus{border-color:var(--accent)}.filter-toggle{cursor:pointer;color:var(--text-muted);white-space:nowrap;align-items:center;gap:5px;font-size:13px;display:flex}.filter-toggle input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.main{flex-direction:column;gap:20px;max-width:1100px;margin:0 auto;padding:20px;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-header{border-bottom:1px solid var(--border);background:var(--group-bg);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.panel-header h2{letter-spacing:.3px;text-transform:uppercase;color:var(--text-muted);font-size:14px;font-weight:600}.table-wrapper{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px;font-size:12px;font-weight:600}.data-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 12px}.data-table tr:last-child td{border-bottom:none}.col-center{text-align:center;width:80px}.col-qty{width:70px}.col-action{text-align:center;width:36px}.row-done td{background:var(--done-bg);color:var(--done-text)}.row-done .inline-input,.row-done .inline-select{color:var(--done-text)}.group-header-row td{background:var(--group-bg);color:var(--text-muted);border-bottom:1px solid var(--border);padding:5px 12px;font-size:12px;font-weight:600}.group-label-sub{color:var(--text-muted);font-weight:400}.empty-row{text-align:center;color:var(--text-muted);font-style:italic;padding:20px!important}.inline-input{color:inherit;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:100%;min-width:80px;padding:3px 6px;font-family:inherit;font-size:13px;transition:border-color .1s,background .1s}.inline-input:hover{border-color:var(--border);background:var(--bg)}.inline-input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 2px var(--focus-ring)}.qty-input{text-align:center;width:60px}.inline-select{color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;max-width:180px;padding:3px 4px;font-family:inherit;font-size:13px;transition:border-color .1s,background .1s}.inline-select:hover{border-color:var(--border);background:var(--bg)}.inline-select:focus{border-color:var(--accent);background:var(--surface)}.progress-cell-inner{align-items:center;gap:8px;min-width:120px;display:flex}.progress-bar-wrap{background:var(--progress-bg);border-radius:3px;flex:1;min-width:60px;height:6px;overflow:hidden}.progress-bar-fill{background:var(--progress-fill);border-radius:3px;height:100%;transition:width .3s}.progress-label{color:var(--text-muted);white-space:nowrap;font-size:12px}.badge{background:var(--group-bg);border:1px solid var(--border);min-width:20px;height:20px;color:var(--text-muted);border-radius:10px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:600;display:inline-flex}.add-row{background:var(--bg);border-top:1px solid var(--border);align-items:center;gap:8px;padding:10px 16px;display:flex}.add-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);outline:none;flex:1;min-width:0;padding:6px 10px;font-family:inherit;font-size:13px}.add-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--focus-ring)}.add-qty{border:1px solid var(--border);border-radius:var(--radius);text-align:center;background:var(--surface);width:60px;color:var(--text);outline:none;padding:6px 8px;font-family:inherit;font-size:13px}.add-qty:focus{border-color:var(--accent)}.add-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;outline:none;max-width:180px;padding:6px 8px;font-size:13px}.add-select:focus{border-color:var(--accent)}.container-name-cell{align-items:center;gap:4px;display:flex}.container-caret{cursor:pointer;width:16px;height:16px;color:var(--text-muted);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:9px;transition:transform .15s;display:inline-flex}.container-caret.expanded{transform:rotate(90deg)}.container-caret-spacer{flex-shrink:0;width:16px;height:16px;display:inline-block}.col-action-2{text-align:center;white-space:nowrap;width:54px}.col-progress{width:140px}.col-parent{width:200px}.parent-select{width:100%;max-width:190px}.btn-add-child:hover{background:var(--add-child-hover-bg);color:var(--add-child-hover-text)}input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}@media (width<=640px){.topbar{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 12px}.topbar-right{flex-wrap:wrap}.filterbar{padding:8px 12px;position:relative;top:0}.main{padding:12px}.progress-summary{font-size:12px}}
