*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f0f4f8;color:#1a202c}.splash{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.1rem;color:#718096}.error-banner{background:#fff5f5;border:1px solid #fc8181;color:#c53030;border-radius:8px;padding:12px 16px;margin-bottom:20px;font-size:.9rem}header{background:#2b6cb0;color:#fff;padding:16px 24px}header h1{font-size:1.4rem;font-weight:600}header p{font-size:.85rem;opacity:.8;margin-top:2px}.container{max-width:900px;margin:0 auto;padding:20px 16px}footer{text-align:center;padding:24px;color:#a0aec0;font-size:.75rem}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}.card{background:#fff;border-radius:10px;padding:14px 16px;box-shadow:0 1px 3px #0000001a}.card label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#718096;display:block;margin-bottom:4px}.card .val{font-size:1.4rem;font-weight:700}.card .sub{font-size:.75rem;color:#a0aec0;margin-top:2px}.card.ok .val{color:#276749}.card.warn .val{color:#c05621}.card.danger .val{color:#c53030}.card.neutral .val{color:#2b6cb0}.card.grey .val{color:#718096}.progress-wrap{background:#fff;border-radius:10px;padding:14px 16px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.progress-wrap label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#718096;display:block;margin-bottom:8px}.progress-bar-bg{background:#e2e8f0;border-radius:99px;height:18px;overflow:hidden}.progress-bar{height:100%;border-radius:99px;transition:width .3s,background .3s}.progress-pct{font-size:.8rem;color:#718096;margin-top:4px;text-align:right}.settings{background:#fff;border-radius:10px;padding:16px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.settings h2{font-size:.8rem;font-weight:600;color:#4a5568;margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.field label{font-size:.8rem;color:#4a5568;display:block;margin-bottom:4px}.field input{width:100%;border:1px solid #cbd5e0;border-radius:6px;padding:7px 10px;font-size:.95rem}.field input:focus{outline:none;border-color:#4299e1;box-shadow:0 0 0 3px #4299e133}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.toolbar input[type=text]{flex:1;min-width:160px;border:1px solid #cbd5e0;border-radius:6px;padding:7px 10px;font-size:.85rem;background:#fff}.toolbar input[type=text]:focus{outline:none;border-color:#4299e1}.filter-btn{border:1px solid #cbd5e0;background:#fff;border-radius:6px;padding:6px 12px;font-size:.8rem;cursor:pointer;color:#4a5568;white-space:nowrap}.filter-btn.active{background:#ebf8ff;border-color:#4299e1;color:#2b6cb0;font-weight:600}.btn-primary{border:none;border-radius:6px;padding:7px 14px;font-size:.82rem;cursor:pointer;font-weight:500;background:#2b6cb0;color:#fff;white-space:nowrap}.btn-primary:hover{background:#2c5282}.btn-primary.btn-grey{background:#718096}.btn-primary.btn-grey:hover{background:#4a5568}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.items-panel{background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.col-head{display:grid;grid-template-columns:32px 1fr 110px 80px 36px;gap:4px;padding:6px 8px 6px 12px;background:#f7fafc;border-bottom:1px solid #e2e8f0;font-size:.7rem;color:#718096;text-transform:uppercase;letter-spacing:.05em;align-items:center}.col-head .right{text-align:right}.item-list{list-style:none;max-height:540px;overflow-y:auto}.item{display:grid;grid-template-columns:32px 1fr 110px 80px 36px;gap:4px;border-bottom:1px solid #f0f4f8;align-items:center;padding:0 4px 0 8px;min-height:44px;transition:background .1s}.item:hover{background:#f7fafc}.item.unchecked{opacity:.4}.item.editing{background:#ebf8ff}.item .cb{display:flex;align-items:center;justify-content:center}.item .cb input[type=checkbox]{width:17px;height:17px;cursor:pointer;accent-color:#2b6cb0}.name-cell{overflow:hidden;padding:4px 0}.name-view{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;display:block}.item.unchecked .name-view{text-decoration:line-through}.name-inp{width:100%;border:1px solid #4299e1;border-radius:5px;padding:4px 7px;font-size:.9rem}.name-inp:focus{outline:none}.weight-cell{text-align:right;padding:4px}.weight-view{font-size:.9rem;font-variant-numeric:tabular-nums;cursor:default}.weight-view.neg{color:#c05621}.weight-inp{width:100%;border:1px solid #4299e1;border-radius:5px;padding:4px 7px;font-size:.9rem;text-align:right}.weight-inp:focus{outline:none}.row-actions,.row-del{display:flex;align-items:center;justify-content:center;gap:2px}.action-btn{background:none;border:none;cursor:pointer;padding:4px 5px;border-radius:4px;font-size:1rem;color:#a0aec0;line-height:1}.action-btn:hover{color:#4a5568;background:#e2e8f0}.action-btn.confirm{color:#48bb78}.action-btn.confirm:hover{color:#276749;background:#f0fff4}.action-btn.del{color:#fc8181}.action-btn.del:hover{color:#c53030;background:#fff5f5}.action-btn:disabled{opacity:.4;cursor:not-allowed}.no-items{padding:32px;text-align:center;color:#a0aec0;font-size:.9rem}.add-section{border-top:2px dashed #e2e8f0;background:#fafafa}.add-row{display:grid;grid-template-columns:32px 1fr 110px 80px 36px;gap:4px;align-items:center;padding:6px 4px 6px 8px}.add-cb{display:flex;align-items:center;justify-content:center}.add-cb input{width:17px;height:17px;accent-color:#2b6cb0}.add-row input[type=text],.add-row input[type=number]{border:1px solid #cbd5e0;border-radius:5px;padding:6px 8px;font-size:.9rem;width:100%}.add-row input[type=number]{text-align:right}.add-row input:focus{outline:none;border-color:#4299e1}.btn-add-confirm{background:none;border:none;cursor:pointer;color:#48bb78;font-size:1.4rem;padding:2px 4px;line-height:1}.btn-add-confirm:hover{color:#276749}.btn-add-confirm:disabled{opacity:.4;cursor:not-allowed}.items-footer{padding:10px 8px 10px 12px;border-top:2px solid #e2e8f0;display:grid;grid-template-columns:32px 1fr 110px 80px 36px;gap:4px;align-items:center;background:#f7fafc}.footer-label{font-size:.8rem;color:#4a5568;font-weight:600}.footer-checked{font-size:.9rem;font-weight:700;color:#2b6cb0;text-align:right;font-variant-numeric:tabular-nums}.footer-total{font-size:.78rem;color:#a0aec0;text-align:right;font-variant-numeric:tabular-nums}
