.pin-pad{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.pin-pad__label{font-size:1rem;font-weight:500;color:var(--text, #1a1a1a);margin:0;text-align:center}.pin-pad__dots{display:flex;gap:.75rem;justify-content:center;margin-bottom:.25rem}.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--primary, #4f6ef7);background:transparent;transition:background .12s ease;display:inline-block}.pin-dot--filled{background:var(--primary, #4f6ef7)}.pin-pad__error{color:var(--error, #c0392b);font-size:.875rem;margin:0;text-align:center}.pin-pad__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;width:100%;max-width:280px}.pin-pad__key{height:64px;font-size:1.4rem;font-weight:500;border:1px solid var(--border, #ddd);border-radius:8px;background:var(--surface, #fff);color:var(--text, #1a1a1a);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s ease,transform .08s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.pin-pad__key:hover{background:var(--hover, #f0f4ff)}.pin-pad__key:active{transform:scale(.94);background:var(--hover, #e0e8ff)}.pin-pad__key--empty{border:none;background:transparent;cursor:default;pointer-events:none}.pin-pad__key--backspace{font-size:1.2rem}.set-pin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.set-pin-modal{background:var(--surface, #fff);border-radius:12px;padding:2rem 1.5rem;width:100%;max-width:320px;box-shadow:0 8px 32px #0000002e;display:flex;flex-direction:column;align-items:center;gap:1rem}.set-pin-modal__success{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 0;font-size:1.1rem;font-weight:500;color:var(--success, #27ae60)}.set-pin-modal__check{font-size:2.5rem}.set-pin-modal__saving{color:var(--text-muted, #888);padding:1rem 0;margin:0}.set-pin-modal__skip{margin-top:.25rem;font-size:.875rem;color:var(--text-muted, #888)}.set-pin-modal__skip:hover{color:var(--text, #1a1a1a)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--bg)}.login-card{width:100%;max-width:360px;background:var(--card);border-radius:var(--radius);padding:2rem;box-shadow:0 4px 20px #00000014}.login-card h1{margin:0 0 1.5rem;font-size:1.5rem;color:var(--text)}.login-card label{display:block;margin-bottom:1rem;font-size:.9rem;color:var(--text-muted)}.login-card input{display:block;width:100%;margin-top:.25rem;padding:.75rem;border:1px solid var(--border);border-radius:10px;min-height:var(--touch)}.login-error,.form-error{color:#c62828;font-size:.9rem;margin:0 0 1rem}.login-card button{width:100%;padding:.75rem 1rem;min-height:var(--touch);background:var(--primary);color:#fff;border:none;border-radius:10px;font-weight:600}.login-card button:disabled{opacity:.7}.login-card .link-button{background:none;border:none;padding:0;color:var(--primary);text-decoration:underline;cursor:pointer;font-size:inherit}.login-message{color:#2e7d32;font-size:.9rem;margin:0 0 .5rem}.login-card .hint{font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem}.login-pin-section{display:flex;flex-direction:column;align-items:center;gap:.75rem}.login-pin-greeting{font-size:1rem;color:var(--text);margin:0;text-align:center}.login-pin-links{display:flex;gap:1.25rem;justify-content:center;flex-wrap:wrap;margin-top:.25rem}.login-pin-links .link-button{background:none;border:none;padding:0;color:var(--primary);text-decoration:underline;cursor:pointer;font-size:.9rem}.login-pin-section .pin-pad__key{width:auto;padding:0;min-height:64px;background:var(--surface, #fff);color:var(--text, #1a1a1a);border:1px solid var(--border, #ddd);font-weight:500}.dashboard{min-height:100vh;padding-bottom:2rem}.btn-role-pill{padding:.25rem .75rem;min-height:30px;border:1px solid var(--border);border-radius:99px;background:var(--card);font-size:.82rem;font-weight:500;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background .1s,color .1s,border-color .1s}.btn-role-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-role-pill:not(.active):hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.dashboard-error{margin:.5rem 1rem;padding:.5rem;background:#ffebee;color:#c62828;border-radius:8px;font-size:.9rem}.dashboard-main{max-width:760px;margin:0 auto;padding:1.5rem 1rem}.dashboard-loading{color:var(--text-muted);padding:1rem 0}.announcement-gate{display:flex;flex-direction:column;gap:1.25rem}.gate-header{text-align:center;padding:1.5rem 1rem .5rem}.gate-icon{font-size:2.5rem;line-height:1;margin-bottom:.5rem}.gate-title{margin:0 0 .4rem;font-size:1.3rem;font-weight:700;color:var(--text)}.gate-subtitle{margin:0;font-size:.95rem;color:var(--text-muted)}.gate-list{display:flex;flex-direction:column;gap:1rem}.gate-card{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius);padding:1.25rem 1.25rem 1rem}.gate-card-title{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:var(--text)}.gate-card-body{margin:0 0 1rem;font-size:.95rem;color:var(--text-muted);line-height:1.55}.gate-card-body p{margin:0 0 .5em}.gate-card-body p:last-child{margin-bottom:0}.gate-card-body ul,.gate-card-body ol{padding-left:1.4em;margin:0 0 .5em}.gate-card-body h2{font-size:1em;font-weight:600;margin:0 0 .3em}.gate-card-body img{display:block;max-width:100%;height:auto;border-radius:6px;margin:.5rem 0}.btn-ack{padding:.55rem 1.1rem;min-height:44px;background:var(--primary);color:#fff;border:none;border-radius:10px;font-weight:500;font-size:.95rem;cursor:pointer;box-shadow:0 2px 4px #00000026;transition:filter .1s,box-shadow .1s,transform .1s}.btn-ack:hover{filter:brightness(1.08);box-shadow:0 3px 6px #0003}.btn-ack:active{transform:translateY(2px);box-shadow:none}.btn-ack:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.gate-card-policy{border-left:4px solid #cf1322}.policy-header-banner{display:inline-block;background:#cf1322;color:#fff;font-weight:800;font-size:1.3rem;letter-spacing:.08em;padding:.3rem .9rem;border-radius:6px;margin-bottom:.75rem}.policy-inline-tag{display:inline-block;background:#fff1f0;color:#cf1322;border:1px solid #ffa39e;font-size:.68rem;font-weight:700;letter-spacing:.03em;padding:.1rem .4rem;border-radius:3px;margin-right:.4rem;vertical-align:middle}.policy-sign-box{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem}.policy-agree-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.policy-sign-name-input{padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-size:.95rem}.btn-sign-policy{min-height:44px;border-radius:10px;align-self:flex-start}.btn-sign-policy:disabled{opacity:.5;cursor:not-allowed}.assignment-card-list{display:flex;flex-direction:column;gap:.75rem}.assignment-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden}.assignment-archived{opacity:.7}.assignment-card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap}.assignment-card-header:hover{background:var(--primary-soft)}.assignment-card-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex:1;min-width:0}.assignment-card-name{font-size:1rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignment-location-badge{display:inline-block;padding:.15rem .55rem;font-size:.75rem;font-weight:500;color:var(--primary);background:var(--primary-soft);border-radius:99px;white-space:nowrap;border:1px solid color-mix(in srgb,var(--primary) 30%,transparent)}.assignment-card-controls{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.btn-tab-mini{padding:.3rem .65rem;min-height:36px;border:1px solid var(--border);border-radius:7px;background:var(--bg, #f9f9f9);font-size:.82rem;font-weight:500;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background .1s,color .1s,border-color .1s}.btn-tab-mini.active{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-tab-mini:not(.active):hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.assignment-chevron{display:flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:1.2rem;line-height:1;color:var(--text-muted);cursor:pointer;border-radius:6px;flex-shrink:0}.assignment-chevron:hover{background:var(--primary-soft);color:var(--primary)}.close-list-note-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.5rem 1rem;background:#fff5f5;border-top:1px solid #fed7d7}.close-list-note-input{flex:1;min-width:140px;padding:.4rem .6rem;border:1px solid #e53e3e;border-radius:6px;font-size:.9rem}.close-list-note-input:focus{outline:none;box-shadow:0 0 0 2px #e53e3e40}.btn-close-list-confirm{padding:.4rem .75rem;background:#e53e3e;color:#fff;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;white-space:nowrap}.btn-close-list-confirm:disabled{opacity:.45;cursor:default}.btn-close-list-confirm:not(:disabled):hover{background:#c53030}.btn-close-list-cancel{padding:.4rem .75rem;background:transparent;color:var(--text-secondary, #666);border:1px solid #ccc;border-radius:6px;font-size:.85rem;cursor:pointer;white-space:nowrap}.btn-close-list-cancel:hover{background:#f0f0f0}.btn-close-list{padding:.3rem .6rem;min-height:36px;font-size:.78rem;font-weight:500;border:1px solid #e53e3e;border-radius:7px;background:transparent;color:#e53e3e;cursor:pointer;white-space:nowrap}.btn-close-list:hover{background:#fff5f5}.assignment-card-body{padding:.75rem 1rem 1rem;border-top:1px solid var(--border)}.task-list{list-style:none;margin:0;padding:0}.task-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;margin-bottom:.5rem;background:var(--primary-soft);border-radius:var(--radius);min-height:var(--touch)}.task-card:last-child{margin-bottom:0}.task-done{background:var(--card-done)}.task-not-done{background:#fff5f5;border-left:3px solid #e53e3e}.task-title{flex:1;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.task-optional-badge{font-size:.7rem;font-weight:500;color:#718096;border:1px solid #a0aec0;border-radius:99px;padding:.1rem .45rem;white-space:nowrap}.task-title-block{flex:1;display:flex;flex-direction:column;gap:.25rem}.task-not-done-reason{font-size:.8rem;color:#c53030;font-style:italic}.task-completed-by{font-size:.78rem;color:#888;font-style:italic}.task-actions{display:flex;gap:.5rem;flex-shrink:0;align-items:center}.toggle-complete{flex-shrink:0;width:48px;height:48px;border:none;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center;color:var(--primary)}.task-done .toggle-complete{background:var(--primary);color:#fff}.toggle-complete .circle{width:24px;height:24px;border:2px solid var(--primary);border-radius:50%}.toggle-not-done{flex-shrink:0;width:44px;height:44px;border:2px solid #e53e3e;border-radius:50%;background:transparent;color:#e53e3e;font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.toggle-not-done:hover{background:#fff5f5}.toggle-incomplete{flex-shrink:0;padding:.5rem .75rem;min-height:44px;border:1px solid var(--primary);border-radius:8px;background:transparent;color:var(--primary);font-size:.9rem}.toggle-incomplete:hover{background:var(--primary-soft)}.badge-archived{display:inline-block;margin-left:.6rem;padding:.1rem .5rem;font-size:.7rem;font-weight:600;background:#f3f4f6;color:#9ca3af;border-radius:99px;vertical-align:middle;letter-spacing:.03em}.reason-input-row{display:flex;gap:.5rem;align-items:center;flex:1;flex-wrap:wrap}.reason-input{flex:1;min-width:120px;padding:.4rem .6rem;border:1px solid #e53e3e;border-radius:6px;font-size:.9rem}.reason-input:focus{outline:none;box-shadow:0 0 0 2px #e53e3e40}.btn-reason-submit{padding:.4rem .75rem;background:#e53e3e;color:#fff;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;white-space:nowrap}.btn-reason-submit:hover{background:#c53030}.btn-reason-cancel{padding:.4rem .75rem;background:transparent;color:var(--text-secondary, #666);border:1px solid #ccc;border-radius:6px;font-size:.85rem;cursor:pointer;white-space:nowrap}.btn-reason-cancel:hover{background:#f0f0f0}.staff-section-wrap{margin-top:.75rem;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--card)}.staff-section-body{border-top:1px solid var(--border);padding:.75rem 1rem}.staff-location-pills{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.75rem}.staff-group{margin-bottom:.75rem}.staff-group:last-child{margin-bottom:0}.staff-group-label{margin:0 0 .35rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.staff-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.staff-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.45rem .6rem;background:var(--primary-soft);border-radius:8px}.staff-name{font-size:.9rem;font-weight:500;color:var(--text)}.staff-role{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.past-announcements-wrap{margin-top:2rem;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--card)}.btn-past-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.85rem 1rem;border:none;background:var(--card);font-size:.95rem;font-weight:500;color:var(--text-muted);cursor:pointer;text-align:left;gap:.5rem}.btn-past-toggle:hover{background:var(--primary-soft);color:var(--text)}.past-chevron{font-size:1.1rem;line-height:1;flex-shrink:0}.past-announcement-list{list-style:none;margin:0;padding:0 1rem .75rem;border-top:1px solid var(--border)}.past-announcement-card{padding:.9rem 0;border-bottom:1px solid var(--border)}.past-announcement-card:last-child{border-bottom:none}.past-card-title{margin:0 0 .35rem;font-size:.95rem;font-weight:600;color:var(--text)}.announcement-body{margin:0;font-size:.9rem;color:var(--text-muted);line-height:1.5}.announcement-body p{margin:0 0 .4em}.announcement-body p:last-child{margin-bottom:0}.announcement-body ul,.announcement-body ol{padding-left:1.4em;margin:0 0 .4em}.announcement-body h2{font-size:.95em;font-weight:600;margin:0 0 .25em}.announcement-body img{display:block;max-width:100%;height:auto;border-radius:6px;margin:.4rem 0}.empty{color:var(--text-muted);font-size:.9rem;padding:.25rem 0}.view-as-bar{display:flex;align-items:center;gap:.6rem;padding:.5rem 1rem;background:var(--surface-alt, #f3f4f6);border-bottom:1px solid var(--border, #e5e7eb);font-size:.85rem;flex-wrap:wrap}.view-as-bar--active{background:#fef3c7;border-bottom-color:#f59e0b}.view-as-bar label{font-weight:600;white-space:nowrap}.view-as-bar select{font-size:.85rem;padding:.2rem .4rem;border-radius:4px;border:1px solid var(--border,#d1d5db)}.view-as-label{color:#92400e;font-size:.82rem}.view-as-clear{margin-left:auto;background:none;border:1px solid #f59e0b;color:#92400e;border-radius:4px;padding:.15rem .5rem;cursor:pointer;font-size:.8rem}.view-as-clear:hover{background:#fde68a}.view-as-debug{color:#78350f;font-size:.78rem;font-style:italic}.sr-wrap{padding:4px 0 24px}.sr-toolbar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:12px}.sr-title{margin:0 0 4px;font-size:1.1rem;font-weight:700}.sr-subtitle{margin:0;font-size:.85rem;color:#777}.sr-new-btn{background:#3b5bdb;color:#fff;border:none;border-radius:7px;padding:8px 16px;font-size:.875rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s;flex-shrink:0}.sr-new-btn:hover{background:#2f4ac0}.sr-state{text-align:center;color:#aaa;font-style:italic;padding:20px 0}.sr-empty{text-align:center;padding:40px 0;color:#888}.sr-empty p{margin:0 0 14px;font-size:.95rem}.sr-list{display:flex;flex-direction:column;gap:10px}.sr-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e4e4e4;border-radius:10px;padding:14px 16px;transition:box-shadow .15s}.sr-card:hover{box-shadow:0 2px 8px #00000012}.sr-card-inactive{opacity:.55}.sr-card-left{flex:1;min-width:0}.sr-card-top{display:flex;align-items:center;gap:8px;margin-bottom:5px;flex-wrap:wrap}.sr-active-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.sr-dot-on{background:#4caf50}.sr-dot-off{background:#bbb}.sr-card-name{font-weight:600;font-size:.95rem}.sr-card-desc{font-size:.82rem;color:#888}.sr-card-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:.8rem;color:#777}.sr-card-actions{display:flex;gap:6px;flex-shrink:0}.sr-card-btn{background:#f5f5f5;border:1px solid #ddd;border-radius:6px;padding:5px 10px;font-size:.8rem;cursor:pointer;color:#555;transition:background .1s,border-color .1s}.sr-card-btn:hover{background:#ebebeb}.sr-toggle-on{color:#2e7d32;border-color:#a5d6a7;background:#e8f5e9}.sr-toggle-off{color:#888;border-color:#ddd;background:#fafafa}.sr-run-now-btn{color:#2e7d32;border-color:#a5d6a7;background:#f1f8f1;font-weight:600}.sr-run-now-btn:hover:not(:disabled){background:#e8f5e9!important;border-color:#66bb6a!important}.sr-run-now-btn:disabled{opacity:.5;cursor:not-allowed}.sr-delete-btn:hover{background:#fff0f0;border-color:#ef9a9a;color:#c62828}.sr-form-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:900;display:flex;align-items:flex-start;justify-content:center;padding:32px 16px;overflow-y:auto}.sr-form{background:#fff;border-radius:12px;width:100%;max-width:680px;box-shadow:0 8px 32px #0000002e;display:flex;flex-direction:column;max-height:calc(100vh - 64px)}.sr-history-form{max-width:780px}.sr-form-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0;flex-shrink:0}.sr-tabs{display:flex;gap:0;padding:14px 24px 0;border-bottom:2px solid #eee;flex-shrink:0}.sr-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:6px 16px;font-size:.875rem;font-weight:600;color:#888;cursor:pointer;white-space:nowrap}.sr-tab:hover{color:#444}.sr-tab-active{color:#3b5bdb;border-bottom-color:#3b5bdb}.sr-tab-hint{font-weight:400;font-size:.78rem;color:#aaa}.sr-form-header h3{margin:0;font-size:1.1rem}.sr-form-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#aaa;padding:0;line-height:1}.sr-form-close:hover{color:#555}.sr-form-body{padding:20px 24px;overflow-y:auto;flex:1}.sr-form-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px 20px;border-top:1px solid #eee;flex-shrink:0}.sr-field{margin-bottom:14px}.sr-field label,.sr-field>label{display:block;font-size:.82rem;font-weight:600;color:#555;margin-bottom:5px}.sr-field input[type=text],.sr-field input[type=date],.sr-field input[type=time],.sr-field input[type=number],.sr-field select,.sr-field textarea,.sr-ai-input{width:100%;padding:8px 10px;border:1px solid #d4d4d4;border-radius:6px;font-size:.9rem;font-family:inherit;box-sizing:border-box;transition:border-color .15s}.sr-field input:focus,.sr-field select:focus,.sr-field textarea:focus,.sr-ai-input:focus{outline:none;border-color:#3b5bdb;box-shadow:0 0 0 2px #3b5bdb1a}.sr-sql-input{width:100%;padding:8px 10px;border:1px solid #d4d4d4;border-radius:6px;font-size:.8rem;font-family:Fira Code,Consolas,Monaco,monospace;box-sizing:border-box;resize:vertical;min-height:110px;transition:border-color .15s}.sr-sql-input:focus{outline:none;border-color:#3b5bdb;box-shadow:0 0 0 2px #3b5bdb1a}.sr-field-inline{display:flex;align-items:center;gap:8px;font-size:.9rem}.sr-field-inline label{display:flex;align-items:center;gap:6px;cursor:pointer;font-weight:500;color:#444;margin:0}.sr-field-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.sr-field-group{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.sr-field-sm{flex:1;min-width:120px;margin-bottom:0}.sr-label-hint{font-weight:400;color:#aaa;font-size:.8rem}.sr-sql-label-actions{display:flex;align-items:center;gap:6px}.sr-help-btn{background:none;border:1px solid #c8d8e8;color:#5b8db8;border-radius:5px;padding:3px 9px;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .1s,border-color .1s}.sr-help-btn:hover{background:#eef4fa;border-color:#5b8db8}.sr-help-panel{background:#f0f6ff;border:1px solid #c5d8ef;border-radius:8px;padding:16px;margin-bottom:10px;font-size:.84rem;color:#333}.sr-help-panel p{margin:4px 0 8px;color:#555;line-height:1.5}.sr-help-section{margin-bottom:14px}.sr-help-section strong{display:block;font-size:.82rem;font-weight:700;color:#2c4a6e;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}.sr-help-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}@media (max-width: 540px){.sr-help-cols{grid-template-columns:1fr}}.sr-help-example{background:#fff;border:1px solid #d0e0f0;border-radius:6px;padding:10px 12px;font-family:Fira Code,Consolas,Monaco,monospace;font-size:.78rem;color:#2c3e50;white-space:pre;overflow-x:auto;margin:6px 0 0;line-height:1.55}.sr-help-table{width:100%;border-collapse:collapse;font-size:.8rem}.sr-help-table td{padding:3px 8px 3px 0;vertical-align:top}.sr-help-table td:first-child{color:#666;white-space:nowrap;width:110px}.sr-help-table-wide{margin-top:8px}.sr-help-table-wide th{padding:4px 10px 4px 0;font-size:.75rem;font-weight:700;color:#2c4a6e;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #d0e0f0}.sr-help-table-wide td{padding:5px 10px 5px 0;border-bottom:1px solid #e8f0f8;font-size:.8rem;vertical-align:middle}.sr-help-table-wide td:first-child{width:auto}.sr-help-table-wide em{color:#666;font-style:italic}.sr-help-table code{background:#fff;border:1px solid #d0e0f0;border-radius:3px;padding:1px 5px;font-size:.77rem;color:#1a3a5c;font-family:Fira Code,Consolas,Monaco,monospace}.sr-help-tip{margin:0!important;padding:8px 10px;background:#fff;border:1px solid #d0e0f0;border-radius:6px;font-size:.8rem!important;color:#4a6080!important}.sr-ai-toggle{background:none;border:1px solid #c5cae9;color:#3b5bdb;border-radius:5px;padding:3px 10px;font-size:.78rem;cursor:pointer;transition:background .1s}.sr-ai-toggle:hover{background:#f0f4ff}.sr-ai-panel{display:flex;gap:8px;margin-bottom:8px;background:#f8f8ff;border:1px solid #c5cae9;border-radius:7px;padding:10px}.sr-ai-input{flex:1;margin:0}.sr-ai-btn{background:#3b5bdb;color:#fff;border:none;border-radius:6px;padding:8px 14px;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:background .15s}.sr-ai-btn:hover:not(:disabled){background:#2f4ac0}.sr-ai-btn:disabled{opacity:.6;cursor:not-allowed}.sr-test-row{display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap}.sr-test-btn{background:#fff;border:1px solid #ccc;border-radius:6px;padding:5px 13px;font-size:.8rem;cursor:pointer;color:#444;transition:background .1s}.sr-test-btn:hover:not(:disabled){background:#f5f5f5}.sr-test-btn:disabled{opacity:.5;cursor:not-allowed}.sr-test-error{font-size:.82rem;color:#c62828}.sr-test-ok{font-size:.82rem;color:#2e7d32}.sr-save-error{flex:1}.sr-preview-wrap{margin-top:10px;border:1px solid #e4e4e4;border-radius:6px;overflow:hidden}.sr-preview-table{width:100%;border-collapse:collapse;font-size:.78rem}.sr-preview-table th{background:#f7f7f7;padding:6px 10px;text-align:left;font-weight:600;border-bottom:1px solid #e0e0e0;white-space:nowrap}.sr-preview-table td{padding:5px 10px;border-bottom:1px solid #f4f4f4;white-space:nowrap}.sr-preview-more{padding:6px 10px;font-size:.78rem;color:#888;font-style:italic;margin:0;background:#fafafa;border-top:1px solid #eee}.sr-recipients{display:flex;flex-wrap:wrap;gap:7px;border:1px solid #e0e0e0;border-radius:7px;padding:10px;min-height:46px;max-height:160px;overflow-y:auto}.sr-recipient{display:flex;align-items:center;gap:6px;font-size:.83rem;cursor:pointer;background:#f6f6f6;border:1px solid #e0e0e0;border-radius:20px;padding:4px 10px;transition:background .1s,border-color .1s;-webkit-user-select:none;user-select:none}.sr-recipient:hover{background:#f0f4ff;border-color:#b0bef5}.sr-recipient-on{background:#e8edff;border-color:#3b5bdb;color:#3b5bdb;font-weight:500}.sr-recipient input[type=checkbox]{cursor:pointer}.sr-recipient-phone{color:#aaa;font-size:.77rem}.sr-no-phones{font-size:.85rem;color:#aaa;font-style:italic;margin:0}.sr-params-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.sr-params-header label{margin:0}.sr-params-warning{font-size:.78rem;color:#e65100;font-weight:500}.sr-params-ok{font-size:.78rem;color:#2e7d32;font-weight:500}.sr-params-list{display:flex;flex-direction:column;gap:8px;border:1px solid #e4e4e4;border-radius:7px;padding:10px;background:#fafafa}.sr-param-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sr-param-name{font-family:Fira Code,Consolas,Monaco,monospace;font-size:.82rem;background:#e8edff;color:#3b5bdb;border-radius:4px;padding:3px 8px;white-space:nowrap;font-weight:600;flex-shrink:0;min-width:90px}.sr-param-type{padding:5px 8px;border:1px solid #d4d4d4;border-radius:5px;font-size:.82rem;background:#fff;cursor:pointer;flex-shrink:0}.sr-param-preset{padding:5px 8px;border:1px solid #d4d4d4;border-radius:5px;font-size:.82rem;background:#fff;cursor:pointer;min-width:170px}.sr-param-custom,.sr-param-static{flex:1;min-width:200px;padding:5px 8px;border:1px solid #d4d4d4;border-radius:5px;font-size:.82rem;font-family:Fira Code,Consolas,Monaco,monospace;background:#fff}.sr-param-custom:focus,.sr-param-static:focus,.sr-param-type:focus,.sr-param-preset:focus{outline:none;border-color:#3b5bdb;box-shadow:0 0 0 2px #3b5bdb1a}.sr-params-hint{margin:6px 0 0;font-size:.78rem;color:#999}.sr-params-hint code{background:#f0f0f0;border-radius:3px;padding:1px 4px;font-size:.78rem;color:#555}.sr-save-btn{background:#3b5bdb;color:#fff;border:none;border-radius:7px;padding:9px 20px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.sr-save-btn:hover:not(:disabled){background:#2f4ac0}.sr-save-btn:disabled{opacity:.6;cursor:not-allowed}.sr-cancel-btn{background:#fff;color:#555;border:1px solid #d0d0d0;border-radius:7px;padding:9px 20px;font-size:.9rem;cursor:pointer;transition:background .1s}.sr-cancel-btn:hover{background:#f5f5f5}.sr-history-table{width:100%;border-collapse:collapse;font-size:.85rem}.sr-history-table th{text-align:left;padding:8px 12px;border-bottom:2px solid #eee;font-weight:600;color:#666;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.sr-history-table td{padding:8px 12px;border-bottom:1px solid #f2f2f2;vertical-align:middle}.sr-history-table tr:hover td{background:#fafafa}.sr-status-badge{display:inline-block;border-radius:4px;padding:2px 8px;font-size:.78rem;font-weight:500}.sr-status-success{background:#e8f5e9;color:#2e7d32}.sr-status-error{background:#ffebee;color:#c62828}.sr-view-link{color:#3b5bdb;text-decoration:none;font-size:.82rem}.sr-view-link:hover{text-decoration:underline}.rv-page{min-height:100vh;background:#f7f8fc;padding:32px 16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.rv-card{background:#fff;border-radius:12px;max-width:1100px;margin:0 auto;padding:32px 36px;box-shadow:0 2px 12px #00000014}.rv-brand{font-size:.75rem;color:#bbb;margin-bottom:18px;text-transform:uppercase;letter-spacing:.07em}.rv-title{font-size:1.6rem;font-weight:700;margin:0 0 6px}.rv-desc{color:#666;margin:0 0 4px;font-size:.95rem}.rv-params{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}.rv-param-pill{display:inline-flex;align-items:center;gap:0;border-radius:6px;overflow:hidden;font-size:.82rem;border:1px solid #d0e0f0}.rv-param-label{background:#e8f0fb;color:#2c4a6e;font-weight:600;padding:3px 8px;font-family:Fira Code,Consolas,Monaco,monospace;font-size:.78rem}.rv-param-value{background:#fff;color:#444;padding:3px 9px}.rv-meta{font-size:.82rem;color:#aaa;margin-bottom:24px}.rv-table-wrap{overflow-x:auto}.rv-table{width:100%;border-collapse:collapse;font-size:.88rem}.rv-table th{text-align:left;padding:10px 14px;background:#f5f5f5;border-bottom:2px solid #e0e0e0;font-weight:600;white-space:nowrap}.rv-table td{padding:9px 14px;border-bottom:1px solid #f0f0f0;white-space:nowrap}.rv-table tr:hover td{background:#fafbff}.rv-row-count{font-size:.8rem;color:#aaa;margin-top:10px}.rv-error{color:#c62828;padding:32px 0;text-align:center;font-size:1rem}.rv-loading{text-align:center;padding:60px 0;color:#aaa;font-size:1rem}.qa-tab{padding:0}.qa-tab-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;gap:12px}.qa-tab-desc{margin:0;font-size:.83rem;color:#777}.qa-tab-header-actions{display:flex;gap:8px;flex-shrink:0}.qa-new-btn{background:#3b5bdb;color:#fff;border:none;border-radius:6px;padding:7px 14px;font-size:.83rem;font-weight:600;cursor:pointer;white-space:nowrap}.qa-new-btn:hover{background:#2f4ac0}.qa-run-btn{background:#2f9e44;color:#fff;border:none;border-radius:6px;padding:7px 14px;font-size:.83rem;font-weight:600;cursor:pointer;white-space:nowrap}.qa-run-btn:hover:not(:disabled){background:#237032}.qa-run-btn:disabled{opacity:.6;cursor:default}.qa-add-btn{background:none;border:1px dashed #bbb;border-radius:6px;padding:5px 12px;font-size:.8rem;color:#555;cursor:pointer;margin-top:6px}.qa-add-btn:hover{border-color:#3b5bdb;color:#3b5bdb}.qa-remove-btn{background:none;border:none;color:#aaa;cursor:pointer;font-size:.85rem;padding:2px 4px;flex-shrink:0}.qa-remove-btn:hover{color:#e03131}.qa-cancel-btn{background:none;border:1px solid #ddd;border-radius:6px;padding:7px 16px;font-size:.875rem;cursor:pointer;color:#555}.qa-cancel-btn:hover{background:#f5f5f5}.qa-save-btn{background:#3b5bdb;color:#fff;border:none;border-radius:6px;padding:7px 18px;font-size:.875rem;font-weight:600;cursor:pointer}.qa-save-btn:hover:not(:disabled){background:#2f4ac0}.qa-save-btn:disabled{opacity:.6;cursor:default}.qa-state{text-align:center;color:#aaa;font-style:italic;padding:20px 0}.qa-empty{text-align:center;padding:32px 0;color:#888;font-size:.9rem}.qa-empty p{margin:0 0 12px}.qa-unsaved{color:#888;font-size:.88rem;font-style:italic;padding:16px 0}.qa-save-flash{background:#d3f9d8;color:#2b8a3e;border:1px solid #b2f2bb;border-radius:6px;padding:7px 12px;font-size:.83rem;margin-bottom:10px}.qa-run-result{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;font-size:.83rem;margin-bottom:14px}.qa-run-ok{background:#d3f9d8;color:#2b8a3e;border:1px solid #b2f2bb}.qa-run-error{background:#ffe3e3;color:#c92a2a;border:1px solid #ffc9c9}.qa-run-dismiss{background:none;border:none;cursor:pointer;color:inherit;opacity:.6;font-size:.8rem;padding:0 2px}.qa-run-dismiss:hover{opacity:1}.qa-list{display:flex;flex-direction:column;gap:8px}.qa-card{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:10px 14px}.qa-card-inactive{opacity:.55}.qa-card-left{flex:1;min-width:0}.qa-card-top{display:flex;align-items:center;gap:8px;margin-bottom:4px}.qa-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.qa-dot-on{background:#40c057}.qa-dot-off{background:#ccc}.qa-card-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qa-type-badge{font-size:.7rem;font-weight:700;background:#e7f5ff;color:#1971c2;border-radius:4px;padding:1px 6px;flex-shrink:0}.qa-card-meta{display:flex;gap:12px;font-size:.78rem;color:#888;flex-wrap:wrap}.qa-card-actions{display:flex;gap:6px;flex-shrink:0}.qa-card-btn{background:#f4f4f4;border:1px solid #e0e0e0;border-radius:5px;padding:4px 10px;font-size:.8rem;cursor:pointer;white-space:nowrap}.qa-card-btn:hover{background:#e8e8e8}.qa-toggle-btn{font-size:.75rem;font-weight:600}.qa-toggle-on{color:#2b8a3e}.qa-toggle-off{color:#888}.qa-delete-btn:hover{background:#ffe3e3;color:#c92a2a;border-color:#ffc9c9}.qa-editor{background:#fafafa;border:1px solid #e0e0e0;border-radius:10px;padding:20px}.qa-editor-header{margin-bottom:16px;border-bottom:1px solid #eee;padding-bottom:10px}.qa-editor-header h4{margin:0;font-size:1rem;font-weight:700}.qa-field-row{display:flex;gap:12px;margin-bottom:14px}.qa-field{display:flex;flex-direction:column;gap:4px;font-size:.83rem}.qa-field-grow{flex:1}.qa-field label{font-weight:600;font-size:.8rem;color:#444}.qa-field input,.qa-field select{padding:6px 9px;border:1px solid #ccc;border-radius:6px;font-size:.875rem;background:#fff}.qa-field input:focus,.qa-field select:focus{outline:none;border-color:#3b5bdb}.qa-section{margin-bottom:18px;border:1px solid #eee;border-radius:7px;padding:12px 14px;background:#fff}.qa-section-header{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}.qa-section-label,.qa-section-header label{font-weight:600;font-size:.83rem;color:#333}.qa-section-hint{font-size:.78rem;color:#888}.qa-empty-hint{font-size:.8rem;color:#aaa;font-style:italic;margin:0 0 8px}.qa-cond-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.qa-cond-prefix{font-size:.75rem;font-weight:700;color:#888;width:28px;flex-shrink:0}.qa-cond-field{flex:1;padding:5px 8px;border:1px solid #ccc;border-radius:5px;font-size:.83rem;background:#fff;min-width:0}.qa-cond-op{width:160px;padding:5px 8px;border:1px solid #ccc;border-radius:5px;font-size:.83rem;background:#fff;flex-shrink:0}.qa-cond-val{flex:1;padding:5px 8px;border:1px solid #ccc;border-radius:5px;font-size:.83rem;min-width:0}.qa-cond-field:focus,.qa-cond-op:focus,.qa-cond-val:focus{outline:none;border-color:#3b5bdb}.qa-token-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.qa-token-chip{background:#e7f5ff;color:#1971c2;border:1px solid #bde0fe;border-radius:4px;padding:2px 8px;font-size:.75rem;font-family:monospace;cursor:pointer}.qa-token-chip:hover{background:#d0ebff}.qa-message-input{width:100%;padding:8px 10px;border:1px solid #ccc;border-radius:6px;font-size:.875rem;resize:vertical;font-family:inherit;box-sizing:border-box}.qa-message-input:focus{outline:none;border-color:#3b5bdb}.qa-recip-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.qa-recip-type{width:160px;padding:5px 8px;border:1px solid #ccc;border-radius:5px;font-size:.83rem;background:#fff;flex-shrink:0}.qa-recip-val{flex:1.5;padding:5px 8px;border:1px solid #ccc;border-radius:5px;font-size:.83rem;background:#fff;min-width:0}.qa-recip-label{flex:1;padding:5px 8px;border:1px solid #ccc;border-radius:5px;font-size:.83rem;min-width:0}.qa-recip-type:focus,.qa-recip-val:focus,.qa-recip-label:focus{outline:none;border-color:#3b5bdb}.qa-section-options{display:flex;flex-direction:column;gap:10px}.qa-checkbox-label{display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:.85rem}.qa-checkbox-label input[type=checkbox]{margin-top:2px;flex-shrink:0}.qa-option-hint{font-weight:400;color:#888;font-size:.8rem}.qa-editor-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid #eee}.qa-error{color:#c92a2a;font-size:.83rem;margin:8px 0 0}.rich-editor{border:1px solid var(--border, #e2e8f0);border-radius:6px;overflow:hidden;background:var(--surface, #fff);width:100%}.rich-editor-toolbar{display:flex;align-items:center;gap:2px;padding:6px 8px;background:var(--bg-muted, #f8fafc);border-bottom:1px solid var(--border, #e2e8f0);flex-wrap:wrap}.rich-editor-toolbar button{padding:3px 8px;border:1px solid transparent;border-radius:4px;background:none;cursor:pointer;font-size:.82rem;color:var(--text, #1e293b);line-height:1.5;min-width:28px;text-align:center;transition:background .1s,border-color .1s}.rich-editor-toolbar button:hover{background:var(--surface, #fff);border-color:var(--border, #e2e8f0)}.rich-editor-toolbar button.active{background:var(--primary, #2563eb);color:#fff;border-color:var(--primary, #2563eb)}.rich-editor-sep{display:inline-block;width:1px;height:18px;background:var(--border, #e2e8f0);margin:0 4px;vertical-align:middle}.rich-editor-content{padding:10px 12px;min-height:260px;max-height:800px;overflow-y:auto;resize:vertical;box-sizing:border-box;cursor:text}.rich-editor-content .ProseMirror{outline:none;min-height:240px;font-size:.9rem;line-height:1.65;color:var(--text, #1e293b)}.rich-editor-content .ProseMirror>*+*{margin-top:.5em}.rich-editor-content .ProseMirror p{margin:0 0 .4em}.rich-editor-content .ProseMirror ul,.rich-editor-content .ProseMirror ol{padding-left:1.5em;margin:.3em 0 .5em}.rich-editor-content .ProseMirror li{margin:.2em 0}.rich-editor-content .ProseMirror h2{font-size:1.1em;font-weight:600;margin:.6em 0 .3em}.rich-editor-content .ProseMirror blockquote{border-left:3px solid var(--border, #e2e8f0);padding-left:.8em;color:var(--text-muted, #64748b);margin:.5em 0}.rich-editor-content .ProseMirror img{max-width:100%;border-radius:4px;display:block;margin:.5em 0}.rich-editor-content .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--text-muted, #94a3b8);pointer-events:none;height:0}.gate-card-body,.announcement-body{font-size:.9rem;line-height:1.6;color:var(--text, #374151);margin-top:.4em}.gate-card-body img,.announcement-body img{max-width:100%;border-radius:4px;margin-top:.5em}.gate-card-body ul,.gate-card-body ol,.announcement-body ul,.announcement-body ol{padding-left:1.5em;margin:.3em 0}.manager-page{max-width:960px;margin:0;padding:0 0 2rem}.manager-error{color:#c62828;margin:0 0 1rem}.manager-message{color:#2e7d32;margin:0 0 1rem}.manager-subsection-title{margin:2rem 0 .75rem;font-size:1.1rem}.manager-section h2{margin:0 0 1rem;font-size:1.1rem}.assign-row{display:flex;gap:.5rem;margin-bottom:1rem}.assign-row input{padding:.5rem;border-radius:8px;border:1px solid var(--border)}.template-list,.announcement-list,.entry-list,.sms-log,.assignment-list,.ingredient-list,.manager-locations-list{list-style:none;margin:0;padding:0}.template-list li,.manager-locations-list li{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.announcement-list li{display:block;padding:.85rem 1rem;margin-bottom:.5rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius, 10px)}.template-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.template-row>span:first-child,.template-row-title{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.template-name-text{font-weight:500}.btn-name-edit{padding:0 .3rem;border:none;background:transparent;color:var(--text-muted);font-size:1rem;cursor:pointer;opacity:.5;line-height:1}.btn-name-edit:hover{opacity:1;color:var(--primary)}.template-name-input{padding:.2rem .4rem;border:1px solid var(--primary);border-radius:6px;font-size:.95rem;min-width:160px;max-width:320px}.template-name-input:focus{outline:none;box-shadow:0 0 0 2px #2563eb33}.btn-name-save{padding:.2rem .5rem;border:1px solid var(--primary);border-radius:6px;background:var(--primary);color:#fff;font-size:.9rem;cursor:pointer}.btn-name-save:disabled{opacity:.6;cursor:default}.btn-name-cancel{padding:.2rem .5rem;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-muted);font-size:.9rem;cursor:pointer}.btn-name-cancel:hover{background:#f5f5f5}.wage-title-badge{display:inline-block;padding:.15rem .5rem;background:var(--primary-soft, #e8f0fe);color:var(--primary, #2563eb);border-radius:99px;font-size:.75rem;font-weight:500;white-space:nowrap}.template-wage-title{margin:0 0 .5rem;font-size:.9rem;display:flex;align-items:center;gap:.5rem}.template-row-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-shrink:0}.template-recurrence-hint{font-size:.8rem;color:var(--text-muted);white-space:nowrap;padding:.15rem .5rem;background:var(--bg-subtle, #f4f4f5);border-radius:99px}.btn-expand{width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--card);font-size:1rem;line-height:1}.template-tasks{width:100%;margin-top:.5rem;padding-left:2rem}.task-edit-list{list-style:none;margin:0 0 .75rem;padding:0}.task-edit-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;margin-bottom:.25rem;border:1px solid var(--border);border-radius:6px;background:var(--card);cursor:default;-webkit-user-select:none;user-select:none;transition:opacity .15s,background .15s}.task-edit-row.task-dragging{opacity:.4}.task-edit-row.task-drag-over{border-color:var(--primary);background:var(--primary-soft)}.drag-handle{cursor:grab;color:var(--text-secondary, #999);font-size:1.1rem;flex-shrink:0;padding:0 2px}.drag-handle:active{cursor:grabbing}.task-edit-title{flex:1;font-size:.9rem}.priority-toggle{flex-shrink:0;padding:.2rem .55rem;border-radius:99px;font-size:.75rem;font-weight:600;border:1.5px solid currentColor;cursor:pointer;background:transparent;transition:background .12s}.priority-toggle.priority-must{color:#c53030;border-color:#c53030}.priority-toggle.priority-must:hover{background:#fff5f5}.priority-toggle.priority-try{color:#718096;border-color:#a0aec0}.priority-toggle.priority-try:hover{background:#f7fafc}.priority-select-new{flex-shrink:0;font-size:.85rem;padding:.3rem .5rem;border:1px solid var(--border);border-radius:6px}.template-tasks ul{list-style:none;margin:0 0 .5rem;padding:0}.template-tasks ul li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.assignment-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.ingredient-list li{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.template-list button,.announcement-list button{padding:.25rem .5rem;font-size:.85rem;background:var(--primary);color:#fff;border:none;border-radius:6px}.btn-remove{background:#c62828!important;color:#fff}.btn-remove.small,.btn-small{padding:.2rem .4rem;font-size:.8rem}.form-inline{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}.form-inline input,.form-inline select{padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px}.form-inline-label{display:flex;align-items:center;gap:.35rem;font-size:.9rem;white-space:nowrap}.form-announcement-edit{display:flex;flex-direction:column;gap:.85rem;padding:1.25rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius, 10px);margin-top:.25rem}.ann-edit-field{display:flex;flex-direction:column;gap:.3rem}.ann-edit-label{font-size:.82rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.ann-edit-input{width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;background:var(--card);color:var(--text);box-sizing:border-box}.ann-edit-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 20%,transparent)}.ann-edit-textarea{width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;font-size:.95rem;line-height:1.6;background:var(--card);color:var(--text);resize:vertical;min-height:140px;box-sizing:border-box;font-family:inherit}.ann-edit-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 20%,transparent)}.ann-edit-dates{display:flex;gap:1.25rem;flex-wrap:wrap}.ann-edit-label-inline{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:var(--text-muted)}.ann-edit-label-inline input[type=date]{padding:.45rem .6rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem;background:var(--card);color:var(--text)}.ann-edit-actions{display:flex;gap:.6rem;padding-top:.25rem}.btn-primary{padding:.55rem 1.25rem;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-primary:disabled{opacity:.55;cursor:default}.btn-secondary{padding:.55rem 1.25rem;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:8px;font-size:.9rem;cursor:pointer}.btn-secondary:hover{background:var(--bg);color:var(--text)}.announcement-item-card{width:100%}.announcement-item-row{display:flex;align-items:flex-start;gap:1rem;justify-content:space-between}.announcement-item-info{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:0}.announcement-item-title{font-size:1rem;font-weight:600;color:var(--text)}.announcement-item-dates{font-size:.82rem;color:var(--text-muted)}.announcement-item-body{margin:.3rem 0 0;font-size:.9rem;color:var(--text-muted);line-height:1.5;max-height:4.8em;overflow:hidden;mask-image:linear-gradient(to bottom,black 60%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 60%,transparent 100%)}.announcement-item-body p{margin:0 0 .3em}.announcement-item-body p:last-child{margin-bottom:0}.announcement-item-body ul,.announcement-item-body ol{margin:0;padding-left:1.2em}.announcement-item-body h2{font-size:.95em;margin:0}.announcement-item-body img{display:block;max-width:100%;height:auto;border-radius:4px;margin:.3rem 0}.announcement-item-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.form-approvers{margin-top:.75rem}.form-approvers .approver-list{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.3rem}.pending-approvals-section{background:#fffbe6;border:1px solid #ffe58f;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.5rem}.pending-approvals-title{font-size:.95rem;font-weight:600;color:#7d5a00;margin:0 0 .75rem}.pending-approval-card{display:flex;flex-direction:column;gap:.5rem;padding:.75rem 0;border-top:1px solid #ffe58f}.pending-approval-card:first-of-type{border-top:none;padding-top:0}.pending-approval-info strong{display:block;font-size:.95rem}.ann-meta{font-size:.8rem;color:#888}.pending-approval-actions{display:flex;flex-direction:column;gap:.4rem}.approval-comment{width:100%;font-size:.85rem;border:1px solid #ddd;border-radius:4px;padding:.35rem .5rem;resize:vertical}.approval-buttons{display:flex;gap:.5rem}.btn-approve{background:#52c41a;color:#fff;border:none;border-radius:4px;padding:.3rem .75rem;font-size:.8rem;cursor:pointer}.btn-approve:hover{background:#389e0d}.btn-approve:disabled{opacity:.6;cursor:not-allowed}.btn-reject{background:#ff4d4f;color:#fff;border:none;border-radius:4px;padding:.3rem .75rem;font-size:.8rem;cursor:pointer}.btn-reject:hover{background:#cf1322}.btn-reject:disabled{opacity:.6;cursor:not-allowed}.btn-publish{background:#1677ff;color:#fff;border:none;border-radius:4px;padding:.3rem .75rem;font-size:.8rem;cursor:pointer}.btn-publish:hover{background:#0958d9}.status-badge{display:inline-block;font-size:.72rem;font-weight:600;padding:.15rem .5rem;border-radius:3px;margin-left:.5rem;vertical-align:middle}.badge-draft{background:#f5f5f5;color:#666;border:1px solid #ddd}.badge-pending{background:#fffbe6;color:#7d5a00;border:1px solid #ffe58f}.badge-published{background:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}.badge-policy{background:#fff1f0;color:#cf1322;border:1px solid #ffa39e;font-weight:700;letter-spacing:.03em}.badge-policy-inactive{background:#f5f5f5;color:#888;border:1px solid #ddd}.policy-manage-row{display:flex;align-items:center;gap:.6rem;margin-top:.3rem}.announcement-item-header{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.approval-status-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}.approval-chip{display:inline-flex;align-items:center;font-size:.78rem;padding:.15rem .55rem;border-radius:12px;gap:.25rem}.approval-chip--pending{background:#f0f0f0;color:#555;border:1px solid #d9d9d9}.approval-chip--approved{background:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}.approval-chip--rejected{background:#fff1f0;color:#cf1322;border:1px solid #ffa39e}.approval-chip-comment{font-style:italic;opacity:.85}.sms-send-form{margin:1rem 0}.sms-send-form textarea{display:block;width:100%;max-width:400px;margin-top:.25rem;padding:.5rem;border:1px solid var(--border);border-radius:8px}.sms-recipients{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem}.sms-checkbox{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;cursor:pointer}.hint{font-size:.9rem;color:var(--text-muted);margin-top:.5rem}.form-announcement{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.5rem;padding:1.25rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius, 10px)}.form-entry{margin-bottom:1rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.form-entry input{padding:.5rem;border:1px solid var(--border);border-radius:8px}.form-error{color:#c62828;width:100%}.required-star{color:#e53e3e;margin-left:1px}.entry-list a{color:var(--primary);text-decoration:none}.sms-log li{font-size:.9rem;margin-bottom:.25rem}.btn-add-selected{margin-top:.25rem}.user-list{list-style:none;padding:0;margin:0}.user-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.9rem}.user-name{flex:0 0 140px;min-width:0}.user-email{flex:1 1 180px;min-width:0;color:var(--text-muted)}.user-role-select{padding:.25rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem}.user-actions{display:flex;gap:.5rem}.user-set-password-form{flex:100%;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.5rem;padding:.5rem 0}.user-set-password-form input{padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem}.user-locations{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;font-size:.9rem}.user-location-checkbox{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap;cursor:pointer}.form-locations,.form-locations-inline{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;font-size:.9rem;margin:.5rem 0}.form-locations-inline{margin:0 .5rem}.location-checkbox{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap;cursor:pointer}.template-locations{margin:.5rem 0;font-size:.9rem}.template-locations .location-checkbox{margin-right:.5rem}.manager-report-picker{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem;margin:0 0 1rem}.manager-report-picker button{padding:.5rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-size:.9rem;cursor:pointer}.manager-report-picker button:hover{border-color:var(--primary-soft)}.manager-report-picker button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.manager-report-panel{margin-top:.25rem}.manager-section h3.manager-report-panel-title{margin:0 0 .5rem;font-size:1rem;font-weight:600}.report-filters{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem}.report-filters label{display:flex;align-items:center;gap:.5rem}.report-filters input{padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px}.report-location-filter{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:.5rem;margin-right:1rem}.report-location-filter select{padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px}.report-result{margin-top:1rem;margin-bottom:2rem;overflow-x:auto}.report-meta{font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem}.report-table{width:100%;border-collapse:collapse;font-size:.9rem}.report-table th,.report-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.report-table th{font-weight:600;background:var(--card)}.report-table tbody tr:hover{background:var(--bg)}.manager-section h3{margin:2rem 0 .5rem;font-size:1rem}.manager-section h3:first-of-type{margin-top:0}.debt-report-panel{margin-top:.5rem}.debt-year-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1rem}.debt-year-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--text-muted)}.debt-year-row input[type=number]{width:6.5rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px}.debt-chart-wrap{margin:1rem 0;max-width:100%}.debt-chart-svg{display:block;width:100%;max-width:640px;height:auto}.debt-chart-empty{padding:1.5rem;background:var(--bg);border-radius:8px;border:1px dashed var(--border);color:var(--text-muted);margin:1rem 0}.debt-chart-legend{display:flex;gap:1.25rem;margin-top:.5rem;font-size:.9rem}.debt-legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.35rem;vertical-align:middle}.debt-legend-dot-prior{background:var(--primary)}.debt-legend-dot-current{background:#2e7d32}.debt-table-title{margin:1.25rem 0 .5rem;font-size:1rem;font-weight:600}.debt-table-scroll{overflow-x:auto;margin-bottom:.75rem}.debt-balance-table .debt-balance-input{width:100%;min-width:6rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem}.debt-save-row{margin-top:.5rem}.debt-ceiling-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1rem}.debt-ceiling-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--text-muted)}.debt-ceiling-input{min-width:12rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px}.debt-legend-ceiling{display:inline-flex;align-items:center;gap:.35rem;color:#c62828;font-weight:500}.debt-legend-dash{display:inline-block;width:18px;height:0;border-top:2px dashed #c62828;vertical-align:middle}.debt-legend-projection{display:inline-flex;align-items:center;gap:.35rem;color:#ef6c00;font-weight:500}.debt-legend-dash-proj{display:inline-block;width:18px;height:0;border-top:2px dashed #ef6c00;vertical-align:middle}.schedule-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1.25rem}.schedule-panel-title{margin:0 0 .75rem;font-size:1rem;display:flex;align-items:center;gap:.6rem}.schedule-source-badge{font-size:.72rem;font-weight:500;background:#e6f4ea;color:#2d7a41;border-radius:99px;padding:.15rem .55rem}.schedule-loading,.schedule-empty{font-size:.9rem;color:var(--text-muted);margin:0}.schedule-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.schedule-item{display:flex;align-items:center;gap:.75rem;padding:.45rem .6rem;background:var(--primary-soft);border-radius:8px;font-size:.9rem;flex-wrap:wrap}.schedule-name{font-weight:600;min-width:120px}.schedule-role{color:var(--text-muted);flex:1}.schedule-time{font-size:.82rem;color:var(--text-muted);white-space:nowrap}.schedule-badge-active{font-size:.72rem;background:#e6f4ea;color:#2d7a41;border-radius:99px;padding:.1rem .5rem;white-space:nowrap}.assign-templates-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1.25rem}.assign-templates-title{margin:0 0 .75rem;font-size:1rem}.assign-template-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.assign-template-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);flex-wrap:wrap}.assign-template-item.already-assigned{border-color:#9ae6b4;background:#f0fff4}.assign-template-name{flex:1;font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.assign-template-controls{display:flex;align-items:center;gap:.5rem}.assign-user-select{padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.88rem;max-width:220px}.btn-assign-template{padding:.35rem .85rem;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:.88rem;cursor:pointer;white-space:nowrap}.btn-assign-template:hover{filter:brightness(1.08)}.assign-done-badge{font-size:.82rem;color:#2d7a41;font-weight:600;white-space:nowrap}.assignments-heading{font-size:1rem;margin:1rem 0 .5rem}.assignment-empty{color:var(--text-muted);font-size:.9rem}.assignment-name{font-weight:500}.assignment-assignee{color:var(--text-muted);font-size:.88rem;margin-left:.4rem}.policies-page{max-width:720px;margin:0 auto;padding:1rem}.policies-title{margin:0 0 .4rem}.policies-list{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.policy-card{background:var(--card);border:1px solid var(--border);border-left:4px solid #cf1322;border-radius:var(--radius);overflow:hidden}.policy-card-signed{border-left-color:#389e0d}.policy-card-header{display:flex;align-items:center;gap:.6rem;width:100%;padding:1rem 1.25rem;background:transparent;border:none;cursor:pointer;text-align:left;font:inherit;color:inherit}.policy-card-header:hover{background:#00000005}.policy-card-header .policy-header-banner{margin-bottom:0;flex-shrink:0}.policy-card-title{flex:1;margin:0;font-size:1.05rem;font-weight:600;color:var(--text)}.policy-card-chevron{font-size:1.2rem;font-weight:700;color:var(--text-muted);width:1.2rem;text-align:center;flex-shrink:0}.badge-policy-signed{background:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}.policy-card-body-wrap{padding:0 1.25rem 1.25rem}.policy-card-body{margin:0 0 .75rem;font-size:.95rem;color:var(--text-muted);line-height:1.55}.policy-roster{margin-top:.5rem}.policy-roster-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem}.policy-roster-list li{display:flex;justify-content:space-between;gap:.5rem;font-size:.85rem;padding:.25rem 0;border-bottom:1px solid var(--border)}.policy-roster-list li.signed .policy-roster-status{color:#389e0d}.policy-roster-list li.unsigned .policy-roster-status{color:#888}.waste-entry-page{max-width:600px;margin:0 auto;padding:1rem 1rem 3rem}.waste-entry-header{margin-bottom:1.5rem}.waste-entry-header a{color:var(--primary);text-decoration:none;display:inline-block;margin-bottom:.5rem}.waste-entry-title-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-top:.5rem}.waste-entry-title-label,.waste-entry-date-label{display:flex;flex-direction:column;font-size:.9rem;color:var(--text-muted)}.waste-entry-title-input{min-width:180px;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;margin-top:.25rem;font-size:1rem}.waste-entry-date-label input{padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;margin-top:.25rem}.waste-entry-title-row .required{color:var(--text-muted)}.waste-entry-save-header{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer}.waste-entry-save-header:hover:not(:disabled){filter:brightness(1.08)}.waste-entry-save-header:disabled{opacity:.7;cursor:not-allowed}.waste-entry-error{color:#c62828;margin-bottom:1rem}.waste-entry-detail h2,.waste-entry-add h2{margin:0 0 .75rem;font-size:1rem}.waste-items{list-style:none;margin:0 0 1.5rem;padding:0}.waste-items li{padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.9rem}.waste-entry-add form.waste-add-form{display:flex;flex-direction:column;gap:.75rem}.waste-entry-add label{display:block;font-size:.9rem;color:var(--text-muted)}.waste-entry-add select,.waste-entry-add input{display:block;width:100%;padding:.75rem;border:1px solid var(--border);border-radius:10px;margin-top:.25rem;min-height:var(--touch)}.waste-entry-add button{padding:.75rem;background:var(--primary);color:#fff;border:none;border-radius:10px;min-height:var(--touch)}.waste-list-page{max-width:600px;margin:0 auto;padding:0;padding-bottom:3rem}.waste-list-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600}.waste-list-error{color:#c62828;margin-bottom:1rem}.waste-list-create{margin-bottom:2rem;padding:1rem;background:var(--card);border-radius:var(--radius);border:1px solid var(--border)}.waste-list-create h2{margin:0 0 1rem;font-size:1rem;color:var(--text-muted)}.waste-create-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem}.waste-create-form label{display:flex;flex-direction:column;font-size:.9rem;color:var(--text-muted)}.waste-create-form input{padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;margin-top:.25rem;min-width:140px}.waste-create-form .required{color:var(--text-muted)}.waste-create-form button{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:8px;min-height:36px}.waste-list-entries h2{margin:0 0 .75rem;font-size:1rem;color:var(--text-muted)}.waste-list{list-style:none;margin:0;padding:0}.waste-list li{margin-bottom:.5rem}.waste-list a{display:block;padding:1rem;background:var(--card);border-radius:var(--radius);border:1px solid var(--border);color:var(--text);text-decoration:none;min-height:var(--touch)}.waste-list a:active,.waste-list a:hover{background:var(--primary-soft)}.empty{color:var(--text-muted);font-size:.9rem}.sync-users-page{max-width:900px;margin:0 auto;padding:0;padding-bottom:3rem}.sync-users-page-title{margin:0 0 .35rem;font-size:1.25rem;font-weight:600}.sync-users-back{margin:0 0 1rem;font-size:.9rem}.sync-users-back .back{color:var(--primary);text-decoration:none}.sync-users-error{color:#c62828;margin-bottom:1rem}.sync-users-message{color:#2e7d32;margin-bottom:1rem}.sync-users-section{margin-top:1rem}.sync-users-section p{margin-bottom:.75rem}.sync-users-section>button:first-of-type{margin-bottom:1rem}.square-team-members{margin:1rem 0}.square-team-members h3{margin-bottom:.5rem;font-size:1rem}.square-team-list{list-style:none;padding:0;margin:0 0 .75rem}.square-team-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.35rem 0;border-bottom:1px solid var(--border);font-size:.9rem}.square-team-name{flex:1 1 200px;min-width:0}.square-team-badge-excluded{display:inline-block;margin-left:.5rem;padding:.1rem .45rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.01em;text-transform:uppercase;color:#8a3a00;background:#ffe9d6;border:1px solid #ffc79b;vertical-align:middle}.square-team-status{color:var(--text-muted);font-size:.85rem}.square-team-role{padding:.25rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem}.square-team-add{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}.btn-add-selected{margin-top:.25rem;margin-right:.5rem}.btn-sync{margin-top:.25rem}.ssync-panel{margin-bottom:2rem}.ssync-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem}.ssync-heading{font-size:1.1rem;font-weight:700;margin:0 0 .25rem}.ssync-desc{font-size:.88rem;color:var(--text-secondary, #555);margin:0}.ssync-error{color:#c0392b;font-size:.88rem;padding:.5rem .75rem;background:#fdf0ef;border-radius:6px;margin-bottom:.75rem}.ssync-loading{color:var(--text-secondary, #888);padding:1rem 0;font-size:.9rem}.ssync-table{width:100%;border-collapse:collapse;font-size:.88rem;background:var(--card-bg, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;overflow:hidden}.ssync-table th{text-align:left;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary, #6b7280);padding:.6rem .85rem;background:var(--table-head-bg, #f9fafb);border-bottom:1px solid var(--border-color, #e5e7eb)}.ssync-table td{padding:.7rem .85rem;border-bottom:1px solid var(--border-color, #f3f4f6);vertical-align:middle}.ssync-table tr:last-child td{border-bottom:none}.ssync-row-disabled td{opacity:.5}.ssync-label{font-weight:500}.ssync-meta{color:var(--text-secondary, #6b7280);font-size:.82rem}.ssync-muted{color:var(--text-secondary, #9ca3af)}.ssync-toggle{position:relative;display:inline-block;width:36px;height:20px;cursor:pointer}.ssync-toggle input{opacity:0;width:0;height:0}.ssync-toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#d1d5db;border-radius:20px;transition:background .2s}.ssync-toggle-slider:before{content:"";position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}.ssync-toggle input:checked+.ssync-toggle-slider{background:#3b82f6}.ssync-toggle input:checked+.ssync-toggle-slider:before{transform:translate(16px)}.ssync-freq-select{padding:.3rem .5rem;border:1px solid var(--border-color, #d1d5db);border-radius:5px;font-size:.82rem;background:var(--input-bg, #fff);color:var(--text-primary, #111)}.ssync-freq-select:disabled{opacity:.4}.ssync-badge{display:inline-block;padding:.1rem .5rem;border-radius:99px;font-size:.72rem;font-weight:600}.ssync-badge-none{background:#f3f4f6;color:#6b7280}.ssync-badge-ok{background:#d1fae5;color:#065f46}.ssync-badge-error{background:#fee2e2;color:#991b1b;cursor:help}.ssync-badge-running{background:#fef3c7;color:#92400e}.ssync-actions{display:flex;gap:.4rem;white-space:nowrap}.ssync-btn-run{padding:.28rem .65rem;background:#3b82f6;color:#fff;border:none;border-radius:5px;font-size:.78rem;font-weight:600;cursor:pointer}.ssync-btn-run:hover:not(:disabled){filter:brightness(1.1)}.ssync-btn-run:disabled{opacity:.5;cursor:default}.ssync-btn-gaps{padding:.28rem .65rem;background:transparent;color:#6b7280;border:1px solid #e5e7eb;border-radius:5px;font-size:.78rem;cursor:pointer}.ssync-btn-gaps:hover{background:#f3f4f6}.ssync-gaps-row td{background:var(--table-head-bg, #f9fafb);padding:.85rem 1rem}.ssync-gaps-loading{color:#6b7280;font-size:.85rem}.ssync-gaps-clear{font-size:.85rem;color:#166534;background:#f0fff4;border:1px solid #9ae6b4;border-radius:6px;padding:.5rem .75rem;display:inline-block}.ssync-gaps-summary{font-size:.85rem;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:.45rem .75rem;margin-bottom:.5rem}.ssync-gaps-table{width:100%;border-collapse:collapse;font-size:.82rem;margin-top:.5rem}.ssync-gaps-table th{text-align:left;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;padding:.3rem .5rem;border-bottom:1px solid #e5e7eb}.ssync-gaps-table td{padding:.4rem .5rem;border-bottom:1px solid #f3f4f6}.ssync-gaps-table tr:last-child td{border-bottom:none}.settings-page{max-width:560px;margin:0 auto;padding:0;padding-bottom:3rem}.settings-page-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600}.settings-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem;margin:0 0 1.25rem}.settings-tabs button{padding:.5rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-size:.9rem;cursor:pointer}.settings-tabs button:hover{border-color:var(--primary-soft)}.settings-tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.settings-intro{font-size:.95rem;color:var(--text-muted);margin-bottom:.5rem}.settings-help{font-size:.9rem;color:var(--text-muted);margin-bottom:1.5rem}.settings-help a{color:var(--primary)}.settings-cred-status{font-size:.9rem;color:var(--text);margin:0 0 .75rem}.settings-cred-status code{font-size:.85rem;background:var(--border);padding:.15rem .4rem;border-radius:4px}.settings-error{color:#c62828;margin-bottom:1rem}.settings-message{color:#2e7d32;margin-bottom:1rem}.settings-form fieldset{border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.settings-form legend{font-weight:600;padding:0 .5rem}.settings-form label{display:block;margin-bottom:.75rem;font-size:.9rem;color:var(--text-muted)}.settings-form input,.settings-form select{display:block;width:100%;margin-top:.25rem;padding:.5rem;border:1px solid var(--border);border-radius:6px}.settings-form button[type=submit]{padding:.75rem 1.5rem;background:var(--primary);color:#fff;border:none;border-radius:8px;font-weight:500}.settings-form button[type=submit]:disabled{opacity:.7}.btn-test{margin-top:.5rem;padding:.5rem 1rem;border:1px solid var(--primary);border-radius:6px;background:transparent;color:var(--primary);font-size:.9rem}.btn-test:hover:not(:disabled){background:var(--primary-soft)}.btn-test:disabled{opacity:.5;cursor:not-allowed}.test-result.success{margin-top:.5rem;font-size:.9rem;color:#2e7d32}.settings-list{list-style:none;padding:0;margin:0}.settings-list li{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.settings-list li button{padding:.25rem .5rem;font-size:.85rem}.settings-list li span{flex:1}.service-token-reveal{background:#d3f9d8;border:1px solid #b2f2bb;border-radius:8px;padding:12px 16px;margin-bottom:1rem;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.service-token-reveal p{margin:0;width:100%;font-size:.88rem;color:#2b8a3e}.service-token-value{font-family:monospace;font-size:.82rem;background:#fff;border:1px solid #b2f2bb;border-radius:4px;padding:6px 10px;flex:1;word-break:break-all;color:#1a1a1a}.btn-copy,.btn-dismiss{padding:5px 12px;border-radius:6px;border:1px solid #aaa;cursor:pointer;font-size:.82rem;background:#fff}.btn-copy:hover{background:#2b8a3e;color:#fff;border-color:#2b8a3e}.btn-dismiss:hover{background:#f5f5f5}.service-token-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.service-token-name-input{flex:1;min-width:200px;padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:.9rem}.service-token-role-select{padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:.9rem;background:#fff}.service-token-table{width:100%;border-collapse:collapse;font-size:.88rem}.service-token-table th{text-align:left;padding:6px 10px;border-bottom:2px solid var(--border);color:#555;font-weight:600}.service-token-table td{padding:7px 10px;border-bottom:1px solid var(--border);color:#333}.service-token-table tr.token-revoked td{opacity:.45}.token-role-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.78rem;font-weight:600;background:#e8f0fe;color:#3b5bdb;text-transform:capitalize}.btn-revoke{padding:3px 10px;border-radius:5px;border:1px solid #e03131;color:#e03131;background:none;cursor:pointer;font-size:.8rem}.btn-revoke:hover{background:#e03131;color:#fff}.token-revoked-label{color:#aaa;font-size:.8rem}.qb-page{padding:1.5rem;max-width:960px;margin:0 auto}.qb-header{margin-bottom:1.5rem}.qb-header h2{font-size:1.4rem;font-weight:600;margin:0}.qb-error{background:#ffebee;border:1px solid #f44336;color:#b71c1c;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.qb-message{background:#e8f5e9;border:1px solid #4caf50;color:#1b5e20;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.qb-loading{color:#666}.qb-empty{color:#888;font-size:.875rem;margin-top:.5rem}.qb-not-connected{background:#f5f5f5;border:1px solid #ddd;border-radius:8px;padding:2rem;text-align:center;color:#555}.qb-not-connected a{display:inline-block;margin-top:.75rem;color:#1976d2}.qb-status-dot.disconnected{background:#f44336}.qb-env-badge{font-size:.75rem;background:#e3f2fd;color:#1565c0;padding:.15rem .5rem;border-radius:12px;text-transform:uppercase;letter-spacing:.04em}.qb-section-header h3{font-size:1.05rem;font-weight:600;margin:0 0 .25rem}.qb-section-sub{font-size:.875rem;color:#666;margin:0}.qb-file-input{display:none}.qb-upload-label{display:flex;align-items:center;justify-content:center;gap:.5rem;height:80px;border:2px dashed #b0bec5;border-radius:8px;cursor:pointer;font-size:.95rem;color:#546e7a;transition:border-color .15s,background .15s;margin-bottom:1rem}.qb-upload-label:hover:not(.uploading){border-color:#1976d2;background:#f0f7ff;color:#1565c0}.qb-upload-label.uploading{border-color:#90a4ae;color:#90a4ae;cursor:default}.qb-upload-results{margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.4rem}.qb-upload-result{display:flex;align-items:center;gap:.75rem;font-size:.85rem;padding:.4rem .75rem;border-radius:5px}.qb-upload-result.ok{background:#e8f5e9;color:#2e7d32}.qb-upload-result.skipped{background:#fff8e1;color:#e65100}.qb-upload-result.error{background:#ffebee;color:#c62828}.qb-result-file{font-weight:500;flex-shrink:0}.qb-tabs{display:flex;gap:0;margin:0;border-bottom:none}.qb-tab{background:none;border:none;padding:.6rem 1.4rem;font-size:.9rem;font-weight:500;color:#666;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.qb-tab:hover{color:#1976d2}.qb-tab.active{color:#1976d2;border-bottom-color:#1976d2}.qb-tabs-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:1.75rem 0 0;border-bottom:2px solid #e0e0e0}.qb-tabs-row .qb-tabs{border-bottom:none;margin:0}.qb-export-bar{display:flex;align-items:center;gap:.6rem;padding-bottom:.4rem;flex-wrap:wrap}.qb-export-account-select{font-size:.85rem;padding:.3rem .5rem;border:1px solid #ccc;border-radius:5px;background:#fff;min-width:200px}.qb-btn-export{background:#5c35c9;color:#fff;border:none;border-radius:5px;padding:.35rem 1rem;font-size:.85rem;cursor:pointer;font-weight:500;white-space:nowrap}.qb-btn-export:hover:not(:disabled){background:#4527a0}.qb-btn-export:disabled{opacity:.5;cursor:not-allowed}.qb-export-modal{max-width:1100px}.qb-export-table-wrap{overflow-x:auto;max-height:60vh;overflow-y:auto}.qb-export-table{width:100%;border-collapse:collapse;font-size:.82rem;table-layout:fixed}.qb-export-table th{background:#f5f5f5;padding:.5rem .6rem;text-align:left;font-weight:600;font-size:.75rem;color:#555;border-bottom:1px solid #e0e0e0;white-space:nowrap;position:sticky;top:0;z-index:1}.qb-export-table td{padding:.55rem .6rem;border-bottom:1px solid #f0f0f0;vertical-align:top;overflow:hidden}.qb-export-table col.col-check{width:36px}.qb-export-table col.col-receipt{width:34%}.qb-export-table col.col-date{width:72px}.qb-export-table col.col-total{width:64px}.qb-export-table col.col-match{width:20%}.qb-export-table col.col-cat{width:16%}.qb-export-table col.col-conf{width:80px}.qb-export-row.no-match{background:#fff8f8}.qb-no-match-label{color:#c62828;font-size:.82rem}.qb-export-cell-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%}.qb-confidence{display:inline-block;font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:10px;text-transform:capitalize}.qb-conf-high{background:#e8f5e9;color:#2e7d32}.qb-conf-medium{background:#fff8e1;color:#f57f17}.qb-conf-low{background:#fce4ec;color:#c62828}.qb-conf-none{background:#f5f5f5;color:#999}.qb-conf-manual{background:#e3f2fd;color:#1565c0}.qb-btn-manual-link{display:block;margin-top:.35rem;background:none;border:1px solid #1976d2;color:#1976d2;border-radius:4px;padding:.2rem .6rem;font-size:.78rem;cursor:pointer}.qb-btn-manual-link:hover:not(:disabled){background:#e3f2fd}.qb-btn-manual-link:disabled{opacity:.5;cursor:not-allowed}.qb-manual-select{display:block;margin-top:.35rem;width:100%;font-size:.8rem;padding:.25rem .4rem;border:1px solid #1976d2;border-radius:4px}.qb-receipts-header{margin:1.5rem 0 .75rem}.qb-receipts-header h3{font-size:1.05rem;font-weight:600;margin:0}.qb-bulk-bar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.5rem .25rem;margin-top:.5rem}.qb-bulk-select-all{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:#555;cursor:pointer;-webkit-user-select:none;user-select:none}.qb-btn-bulk-accept{background:#4caf50;border:1px solid #388e3c;color:#fff;border-radius:5px;padding:.3rem 1rem;font-size:.85rem;cursor:pointer;font-weight:500}.qb-btn-bulk-accept:hover:not(:disabled){background:#388e3c}.qb-btn-bulk-accept:disabled{opacity:.5;cursor:not-allowed}.qb-receipt-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem}.qb-receipt-row{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #e0e0e0;border-radius:7px;padding:.75rem 1rem;gap:1rem;flex-wrap:wrap}.qb-receipt-row.selected{border-color:#90caf9;background:#f5f9ff}.qb-row-checkbox{flex-shrink:0;width:16px;height:16px;cursor:pointer}.qb-receipt-main{display:flex;flex-direction:column;gap:.3rem;min-width:0;flex:1}.qb-receipt-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.qb-receipt-descs{font-size:.8rem;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:600px}.qb-receipt-cats{display:flex;gap:1rem;flex-wrap:wrap}.qb-receipt-accounts,.qb-receipt-classes{font-size:.78rem;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}.qb-receipt-order{font-weight:500;font-size:.9rem}.qb-receipt-order-link{color:#0958d9;text-decoration:none}.qb-receipt-order-link:hover{text-decoration:underline}.qb-receipt-vendor{font-size:.85rem;color:#555}.qb-receipt-date{font-size:.75rem;color:#999}.qb-receipt-card{font-size:.75rem;color:#999;letter-spacing:.03em}.qb-receipt-status{font-size:.75rem;padding:.15rem .5rem;border-radius:10px;font-weight:500}.qb-status-pending{background:#fff3e0;color:#e65100}.qb-status-reviewed{background:#e3f2fd;color:#1565c0}.qb-status-imported{background:#e8f5e9;color:#2e7d32}.qb-receipt-right{display:flex;align-items:center;gap:.75rem}.qb-receipt-total{font-weight:600;font-size:.95rem}.qb-receipt-items{font-size:.8rem;color:#888}.qb-btn-review{background:#fff;border:1px solid #1976d2;color:#1976d2;border-radius:5px;padding:.3rem .85rem;font-size:.85rem;cursor:pointer;font-weight:500}.qb-btn-review:hover:not(:disabled){background:#e3f2fd}.qb-btn-review:disabled{opacity:.5;cursor:not-allowed}.qb-btn-pdf{background:#fff;border:1px solid #c62828;color:#c62828;border-radius:5px;padding:.3rem .7rem;font-size:.85rem;cursor:pointer;font-weight:500}.qb-btn-pdf:hover{background:#ffebee}.qb-btn-accept-all{background:#4caf50;border:1px solid #388e3c;color:#fff;border-radius:5px;padding:.3rem .85rem;font-size:.85rem;cursor:pointer;font-weight:500}.qb-btn-accept-all:hover:not(:disabled){background:#388e3c}.qb-btn-accept-all:disabled{opacity:.5;cursor:not-allowed}.qb-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;z-index:1000;overflow-y:auto}.qb-modal{background:#fff;border-radius:10px;width:100%;max-width:900px;box-shadow:0 8px 40px #0003;overflow:hidden}.qb-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem 1.5rem;border-bottom:1px solid #e0e0e0}.qb-modal-header h3{margin:0 0 .2rem;font-size:1.05rem;font-weight:600}.qb-modal-sub{margin:0;font-size:.85rem;color:#666}.qb-modal-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:#666;padding:.2rem .4rem;line-height:1}.qb-modal-close:hover{color:#333}.qb-review-table-wrap{overflow-x:auto}.qb-review-table{width:100%;border-collapse:collapse;font-size:.875rem}.qb-review-table th{background:#f5f5f5;padding:.6rem .75rem;text-align:left;font-weight:600;font-size:.8rem;color:#555;border-bottom:1px solid #e0e0e0;white-space:nowrap}.qb-review-table td{padding:.65rem .75rem;border-bottom:1px solid #f0f0f0;vertical-align:top}.qb-item-row.qb-item-accepted{background:#f1f8e9}.qb-item-row.qb-item-rejected{background:#fafafa;opacity:.6}.qb-item-desc{font-weight:500;margin-bottom:.15rem}.qb-item-confidence{font-size:.75rem;color:#888}.qb-item-qty-row{display:flex;align-items:center;gap:.3rem;margin:.25rem 0 .15rem}.qb-item-qty-input{width:5rem;padding:.15rem .3rem;font-size:.8rem;border:1px solid #ccc;border-radius:4px;text-align:right}.qb-item-unit-select{padding:.15rem .3rem;font-size:.8rem;border:1px solid #ccc;border-radius:4px;background:#fff}.qb-item-grams{font-size:.75rem;color:#888;white-space:nowrap}.qb-item-total{font-weight:500;white-space:nowrap}.qb-item-account{font-size:.85rem;color:#333}.qb-item-select{font-size:.8rem;width:100%;max-width:220px;padding:.3rem .4rem;border:1px solid #d0d0d0;border-radius:4px;background:#fff;color:#333}.qb-item-select:focus{outline:none;border-color:#2196f3}.qb-decision-btns{display:flex;gap:.35rem}.qb-btn-accept,.qb-btn-reject{border:1px solid;border-radius:4px;padding:.25rem .6rem;font-size:.85rem;cursor:pointer;font-weight:600;background:#fff}.qb-btn-accept{border-color:#4caf50;color:#4caf50}.qb-btn-accept:hover,.qb-btn-accept.active{background:#4caf50;color:#fff}.qb-btn-reject{border-color:#e53935;color:#e53935}.qb-btn-reject:hover,.qb-btn-reject.active{background:#e53935;color:#fff}.qb-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e0e0e0}.qb-btn-cancel{background:#fff;border:1px solid #ccc;border-radius:6px;padding:.5rem 1.25rem;font-size:.9rem;cursor:pointer;color:#555}.qb-btn-cancel:hover{background:#f5f5f5}.qb-btn-save{background:#1976d2;color:#fff;border:none;border-radius:6px;padding:.5rem 1.25rem;font-size:.9rem;cursor:pointer;font-weight:500}.qb-btn-save:hover:not(:disabled){background:#1565c0}.qb-btn-save:disabled{opacity:.6;cursor:not-allowed}.qb-rules-header{display:flex;align-items:center;justify-content:space-between;margin:1.75rem 0 0;padding:.75rem 1rem;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.qb-rules-header:hover{background:#eee}.qb-rules-header h3{margin:0;font-size:1rem;font-weight:600}.qb-rules-count{display:inline-block;background:#1976d2;color:#fff;font-size:.72rem;font-weight:700;border-radius:10px;padding:.1rem .45rem;margin-left:.4rem;vertical-align:middle}.qb-rules-toggle{color:#666;font-size:.8rem}.qb-rules-body{border:1px solid #e0e0e0;border-top:none;border-radius:0 0 8px 8px;padding:1rem}.qb-rule-row{display:flex;align-items:flex-start;justify-content:space-between;padding:.65rem 0;border-bottom:1px solid #f0f0f0;gap:1rem}.qb-rule-row:last-of-type{border-bottom:none}.qb-rule-row.inactive{opacity:.5}.qb-rule-left{display:flex;align-items:flex-start;gap:.75rem;flex:1}.qb-rule-name{font-weight:600;font-size:.9rem}.qb-rule-priority{font-weight:400;color:#888;font-size:.8rem}.qb-rule-desc{font-size:.8rem;color:#555;margin-top:.2rem}.qb-rule-notes{font-size:.78rem;color:#888;font-style:italic;margin-top:.15rem}.qb-rule-actions{display:flex;gap:.4rem;flex-shrink:0}.qb-btn-rule-edit,.qb-btn-rule-del{border:1px solid;border-radius:4px;padding:.2rem .6rem;font-size:.8rem;cursor:pointer;font-weight:500;background:#fff}.qb-btn-rule-edit{border-color:#90a4ae;color:#546e7a}.qb-btn-rule-edit:hover{background:#eceff1}.qb-btn-rule-del{border-color:#ef9a9a;color:#c62828}.qb-btn-rule-del:hover{background:#ffebee}.qb-btn-add-rule{margin-top:.75rem;background:#e8f5e9;border:1px dashed #4caf50;color:#2e7d32;border-radius:6px;padding:.45rem 1rem;font-size:.875rem;cursor:pointer;font-weight:500;width:100%}.qb-btn-add-rule:hover{background:#c8e6c9}.qb-toggle{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0;margin-top:2px}.qb-toggle input{opacity:0;width:0;height:0}.qb-toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#ccc;border-radius:20px;transition:.2s}.qb-toggle-slider:before{content:"";position:absolute;height:14px;width:14px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}.qb-toggle input:checked+.qb-toggle-slider{background:#4caf50}.qb-toggle input:checked+.qb-toggle-slider:before{transform:translate(16px)}.qb-rule-modal{max-width:560px}.qb-rule-form{padding:1rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}.qb-form-section{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#888;padding-top:.5rem;border-top:1px solid #eee;margin-top:.25rem}.qb-form-row{display:flex;flex-direction:column;gap:.25rem}.qb-form-row label{font-size:.85rem;font-weight:500;color:#444}.qb-form-row input[type=text],.qb-form-row input[type=number],.qb-form-row select,.qb-form-row textarea{border:1px solid #ccc;border-radius:5px;padding:.4rem .6rem;font-size:.875rem;width:100%;box-sizing:border-box}.qb-form-row input[type=checkbox]{width:auto;margin-right:.4rem}.qb-form-row textarea{resize:vertical}.qb-item-rule{font-size:.75rem;color:#1565c0;background:#e3f2fd;border-radius:4px;padding:.1rem .4rem;margin-top:.2rem;display:inline-block}.qb-form-hint{font-size:.78rem;color:#888;font-style:italic}.qb-btn-reapply{background:#fff;border:1px solid #90a4ae;color:#546e7a;border-radius:5px;padding:.3rem .6rem;font-size:.9rem;cursor:pointer;line-height:1}.qb-btn-reapply:hover:not(:disabled){background:#eceff1}.qb-btn-reapply:disabled{opacity:.5;cursor:not-allowed}.qb-btn-delete-receipt{background:#fff;border:1px solid #e0e0e0;color:#bbb;border-radius:5px;padding:.3rem .6rem;font-size:.85rem;cursor:pointer;line-height:1}.qb-btn-delete-receipt:hover{border-color:#e53935;color:#e53935;background:#fff8f8}.qb-tab-badge{display:inline-block;margin-left:.35rem;font-size:.7rem;font-weight:600;border-radius:10px;padding:.1rem .4rem;line-height:1.4;vertical-align:middle}.qb-tab-badge.badge-green{background:#c8e6c9;color:#2e7d32}.qb-tab-badge.badge-yellow{background:#fff3e0;color:#e65100}.qb-amazon-section{display:flex;flex-direction:column;gap:1rem}.qb-amazon-stats{display:flex;gap:1.5rem;flex-wrap:wrap;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:.85rem 1.25rem}.qb-amazon-stat{display:flex;flex-direction:column;align-items:center;gap:.15rem}.qb-amazon-stat-value{font-size:1.6rem;font-weight:700;color:#1565c0;line-height:1}.qb-amazon-stat-value.stat-green{color:#2e7d32}.qb-amazon-stat-value.stat-yellow{color:#e65100}.qb-amazon-stat-label{font-size:.78rem;color:#666}.qb-amazon-upload-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.qb-amazon-hint{font-size:.83rem;color:#555;margin:0 0 .4rem;max-width:600px;line-height:1.5}.qb-amazon-upload-btn-group{flex-shrink:0;padding-top:.25rem}.qb-btn-amazon-upload{background:#1565c0;color:#fff;border:none;border-radius:6px;padding:.5rem 1.1rem;font-size:.875rem;font-weight:500;cursor:pointer;white-space:nowrap}.qb-btn-amazon-upload:hover:not(:disabled){background:#0d47a1}.qb-btn-amazon-upload:disabled{opacity:.6;cursor:not-allowed}.qb-amazon-upload-result{font-size:.875rem;padding:.6rem 1rem;border-radius:6px}.qb-amazon-upload-result.result-ok{background:#e8f5e9;color:#1b5e20;border:1px solid #a5d6a7}.qb-amazon-upload-result.result-err{background:#ffebee;color:#b71c1c;border:1px solid #ef9a9a}.qb-amazon-table-wrap{overflow-x:auto}.qb-amazon-table{width:100%;border-collapse:collapse;font-size:.85rem}.qb-amazon-table th{text-align:left;padding:.5rem .75rem;background:#f5f5f5;border-bottom:2px solid #e0e0e0;font-size:.78rem;font-weight:600;text-transform:uppercase;color:#666}.qb-amazon-table td{padding:.5rem .75rem;border-bottom:1px solid #f0f0f0;vertical-align:top}.qb-amazon-table tr:hover td{background:#fafafa}.qb-amazon-amount{font-weight:600;color:#212121;white-space:nowrap}.qb-amazon-card{color:#555;white-space:nowrap}.qb-amazon-imported{color:#999;white-space:nowrap}.qb-amazon-orders{display:flex;flex-wrap:wrap;gap:.3rem}.qb-amazon-order-chip{font-size:.75rem;background:#e3f2fd;color:#1565c0;border-radius:4px;padding:.1rem .45rem;white-space:nowrap;font-family:monospace}.qb-shipment-label{font-size:.75rem;color:#1565c0;font-weight:500;margin-top:.15rem;display:flex;align-items:center;gap:.3rem}.qb-pdf-badge{font-size:.85rem}.qb-shipment-items{margin-top:.35rem;display:flex;flex-direction:column;gap:.3rem}.qb-shipment-item{display:flex;gap:.4rem;align-items:baseline;font-size:.75rem;color:#555}.qb-shipment-item-edit{flex-direction:column;align-items:stretch;gap:.15rem}.qb-shipment-item-desc{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default;color:#333;font-size:.78rem}.qb-shipment-item-controls{display:flex;align-items:center;gap:.4rem}.qb-shipment-item-acct{color:#1976d2;white-space:nowrap;font-size:.72rem;background:#e3f2fd;border-radius:3px;padding:.05rem .3rem}.qb-shipment-item-amt{white-space:nowrap;font-weight:500;color:#212121;flex-shrink:0}.qb-shipment-item-edit .acct-select-btn{font-size:.72rem;padding:.15rem .4rem;min-height:24px;white-space:nowrap}.qb-shipment-item-edit .acct-select-btn-label{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qb-export-receipt-header{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap;margin-bottom:.1rem}.qb-export-receipt-vendor{font-weight:600;font-size:.88rem}.qb-export-order-num{font-size:.78rem;color:#777}.qb-settings-section{display:flex;flex-direction:column;gap:1.25rem}.qb-settings-heading{font-size:1rem;font-weight:600;margin:0;color:#212121}.qb-settings-hint{font-size:.83rem;color:#666;margin:0;line-height:1.5;max-width:600px}.qb-card-table{width:100%;border-collapse:collapse;font-size:.875rem}.qb-card-table th{text-align:left;padding:.45rem .75rem;background:#f5f5f5;border-bottom:2px solid #e0e0e0;font-size:.78rem;font-weight:600;text-transform:uppercase;color:#666}.qb-card-table td{padding:.5rem .75rem;border-bottom:1px solid #f0f0f0;vertical-align:middle}.qb-card-last4{font-family:monospace;font-size:.9rem;font-weight:600;letter-spacing:.05em}.qb-card-account{color:#1565c0}.qb-card-form{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.qb-card-form-heading{margin:0;font-size:.875rem;font-weight:600;color:#444}.qb-card-form-row{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.qb-card-form-row .qb-form-row{flex:1;min-width:120px}.qb-card-form-row .qb-btn-save{flex-shrink:0;margin-bottom:0;align-self:flex-end}.qb-settings-card-coverage{display:flex;flex-direction:column;gap:.4rem}.qb-settings-card-coverage h4{margin:0;font-size:.875rem;font-weight:600;color:#444}.qb-tab-excluded{color:#e65100}.qb-tab-excluded.active{border-bottom-color:#e65100;color:#e65100}.qb-personal-badge{display:inline-flex;align-items:center;font-size:.72rem;font-weight:600;background:#fff3e0;color:#e65100;border:1px solid #ffcc80;border-radius:10px;padding:.1rem .55rem;white-space:nowrap}.qb-business-badge{display:inline-flex;align-items:center;font-size:.72rem;font-weight:600;background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7;border-radius:10px;padding:.1rem .55rem;white-space:nowrap}.qb-card-row-personal td{background:#fffde7}.qb-card-row-personal:hover td{background:#fff8e1}.qb-form-row-checkbox{display:flex;align-items:center;padding-bottom:.15rem;min-width:0;flex:0 0 auto}.qb-checkbox-label{display:flex;align-items:center;gap:.45rem;font-size:.875rem;color:#444;cursor:pointer;white-space:nowrap}.qb-checkbox-label input[type=checkbox]{cursor:pointer;margin:0}.qb-uncategorized-warning{font-size:.78rem;color:#e65100;font-weight:500;margin-top:.2rem}.qb-item-no-account{background:#fff8e1}.qb-item-no-account:hover td{background:#fff3e0}.qb-item-no-acct-label{font-size:.8rem;color:#e65100;font-weight:600}.qb-btn-reapply-all{margin-left:auto;background:#fff;border:1px solid #bdbdbd;border-radius:6px;padding:.35rem .9rem;font-size:.83rem;cursor:pointer;color:#444}.qb-btn-reapply-all:hover:not(:disabled){background:#f5f5f5;border-color:#999}.qb-btn-reapply-all:disabled{opacity:.6;cursor:not-allowed}.qb-pending-filters{display:flex;align-items:center;gap:.5rem;margin-left:auto}.qb-filter-source,.qb-filter-vendor{font-size:.82rem;border:1px solid #ccc;border-radius:5px;padding:.28rem .5rem;color:#333;background:#fff}.qb-filter-vendor{width:160px}.qb-filter-clear{background:none;border:1px solid #bbb;border-radius:5px;color:#666;font-size:.78rem;padding:.28rem .55rem;cursor:pointer}.qb-filter-clear:hover{background:#f5f5f5;border-color:#999}.qb-item-select{width:100%;font-size:.8rem;padding:.25rem .4rem;border:1px solid #e0e0e0;border-radius:4px;background:#fff;color:#212121;max-width:220px}.qb-item-select:focus{outline:none;border-color:#1976d2}.qb-item-select-warn{border-color:#ff9800;background:#fff8e1;color:#e65100}.acct-select-wrap{position:relative;width:100%;max-width:240px}.acct-select-wrap.acct-select-warn .acct-select-btn{border-color:#ff9800;background:#fff8e1}.acct-select-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.2rem .4rem;font-size:.78rem;text-align:left;border:1px solid #d0d0d0;border-radius:4px;background:#fff;color:#212121;cursor:pointer;min-height:26px}.acct-select-btn:hover{border-color:#1976d2}.acct-select-btn-empty{color:#e65100}.acct-select-placeholder{color:#e65100;font-style:italic}.acct-select-btn-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.acct-select-caret{margin-left:4px;font-size:.6rem;opacity:.5;flex-shrink:0}.acct-select-dropdown{background:#fff;border:1px solid #bbb;border-radius:6px;box-shadow:0 6px 20px #0000002e;font-size:.82rem;overflow:hidden}.acct-select-search-wrap{padding:.4rem .5rem;border-bottom:1px solid #e8e8e8;background:#f8f8f8}.acct-select-search{width:100%;padding:.3rem .5rem;font-size:.82rem;border:1px solid #1976d2;border-radius:4px;outline:none;box-sizing:border-box;font-family:inherit}.acct-select-list{max-height:220px;overflow-y:auto}.acct-select-group-label{padding:.25rem .6rem .1rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#999;background:#f5f5f5;border-top:1px solid #eee}.acct-select-option{padding:.28rem .75rem;cursor:pointer;color:#212121;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acct-select-option:hover{background:#e3f2fd}.acct-select-active{background:#bbdefb;font-weight:600}.acct-select-none{color:#e65100;font-style:italic;border-bottom:1px solid #eee}.acct-select-empty{padding:.5rem .75rem;color:#999;font-style:italic}.qb-rule-suggestion-banner{background:#e8f5e9;border:1px solid #a5d6a7;border-radius:6px;padding:.6rem 1rem;font-size:.875rem;color:#2e7d32;margin-bottom:.75rem}.qb-rule-suggestions{background:#fffde7;border:1px solid #f9a825;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.75rem}.qb-rule-suggestions-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:.9rem}.qb-rule-suggestions-sub{font-size:.8rem;color:#888;font-weight:400}.qb-btn-dismiss{background:none;border:none;color:#999;font-size:.8rem;cursor:pointer;white-space:nowrap;flex-shrink:0}.qb-btn-dismiss:hover{color:#444}.qb-rule-suggestion-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;background:#fff;border:1px solid #ffe082;border-radius:6px;padding:.65rem .9rem}.qb-rule-suggestion-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.qb-rule-suggestion-name{font-weight:600;font-size:.875rem;color:#212121}.qb-rule-suggestion-desc{font-size:.82rem;color:#444}.qb-rule-suggestion-desc code{background:#f5f5f5;padding:.1rem .35rem;border-radius:3px;font-size:.78rem}.qb-rule-suggestion-notes{font-size:.78rem;color:#888}.qb-btn-add-suggestion{flex-shrink:0;background:#1976d2;color:#fff;border:none;border-radius:6px;padding:.35rem .85rem;font-size:.82rem;cursor:pointer;white-space:nowrap;font-weight:500}.qb-btn-add-suggestion:hover{background:#1565c0}.qb-rule-conflict-banner{background:#fff8e1;border:1px solid #f9a825;border-radius:8px;padding:.85rem 1rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.qb-rule-conflict-header{display:flex;justify-content:space-between;align-items:center}.qb-rule-conflict-header strong{color:#e65100;font-size:.875rem}.qb-rule-conflict-row{font-size:.82rem;color:#444;padding-left:.5rem}.qb-rule-conflict-row code{background:#fce4c8;padding:.1rem .3rem;border-radius:3px;font-size:.78rem}.qb-rule-conflict-actions{display:flex;gap:.5rem;padding-top:.25rem}.qb-btn-secondary{background:#fff;border:1px solid #bbb;border-radius:6px;padding:.35rem .85rem;font-size:.82rem;cursor:pointer;color:#444}.qb-btn-secondary:hover{background:#f5f5f5}.qb-btn-warning{background:#e65100;color:#fff;border:none;border-radius:6px;padding:.35rem .85rem;font-size:.82rem;cursor:pointer;font-weight:500}.qb-btn-warning:hover{background:#bf360c}.harvester-tab{padding:1rem 0}.harvester-tab h3{margin:0 0 .25rem;font-size:1.1rem}.harvester-desc{color:#666;font-size:.9rem;margin:0 0 1rem}.harvester-message{background:#e8f5e9;color:#2e7d32;padding:.6rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.harvester-error{background:#fdecea;color:#c62828;padding:.6rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.harvester-sources{display:flex;flex-direction:column;gap:1rem}.harvester-source-card{border:1px solid #e0e0e0;border-radius:8px;padding:1rem;background:#fff}.harvester-source-card.harvester-status-error{border-color:#f44336}.harvester-source-card.harvester-status-ok{border-color:#4caf50}.harvester-source-card.harvester-status-running{border-color:#2196f3}.harvester-source-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.harvester-source-name{font-weight:600;font-size:1rem;margin-right:.5rem}.harvester-source-type{font-size:.75rem;background:#f5f5f5;padding:.1rem .5rem;border-radius:10px;color:#666}.harvester-status-badge{font-size:.8rem;padding:.2rem .6rem;border-radius:10px;white-space:nowrap}.harvester-status-ok{background:#e8f5e9;color:#2e7d32}.harvester-status-error{background:#fdecea;color:#c62828}.harvester-status-running{background:#e3f2fd;color:#1565c0}.harvester-status-idle{background:#f5f5f5;color:#666}.harvester-source-meta{display:flex;gap:1.5rem;font-size:.8rem;color:#666;margin-bottom:.75rem;flex-wrap:wrap}.harvester-error-detail{font-size:.8rem;color:#c62828;background:#fdecea;padding:.4rem .6rem;border-radius:4px;margin-bottom:.75rem}.harvester-source-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.harvester-schedule-label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#555}.harvester-schedule-label select{padding:.3rem .5rem;border:1px solid #ccc;border-radius:4px;font-size:.85rem}.harvester-run-btn{padding:.35rem 1rem;font-size:.85rem}.qb-no-items{text-align:center;padding:2rem;color:#666}.qb-no-items p{margin-bottom:1rem}.qb-tab-summary{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;margin-bottom:.5rem;background:#f5f5f5;border-radius:6px;font-size:.8rem;color:#555;flex-wrap:wrap}.qb-summary-total{font-weight:600;color:#333;margin-right:.25rem}.qb-summary-vendor{background:#e0e0e0;color:#444;padding:.15rem .55rem;border-radius:10px}.sq-page{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--bg-page, #f5f5f5);font-family:inherit}.sq-page-header{padding:16px 24px 0;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0}.sq-page-title{display:flex;align-items:center;gap:12px;margin-bottom:14px}.sq-logo{font-size:24px;color:#00a651;line-height:1;flex-shrink:0}.sq-page-title h1{margin:0;font-size:1.35rem;font-weight:700;color:var(--text-primary, #1a1a1a);line-height:1.2}.sq-subtitle{margin:2px 0 0;font-size:.8rem;color:var(--text-muted, #888)}.sq-tabs{display:flex;gap:2px}.sq-tab{padding:8px 18px;border:none;background:none;font-size:.84rem;font-weight:500;color:#6b7280;cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap}.sq-tab:hover{color:#1a1a1a}.sq-tab-active{color:#00a651;border-bottom-color:#00a651;font-weight:600}.sq-tab-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.sq-state{padding:48px 24px;text-align:center;color:var(--text-muted, #888);font-size:.9rem}.sq-state-error{color:#b91c1c}.sq-ask-wrap{display:flex;flex-direction:column;height:100%;overflow:hidden}.sq-suggestions{padding:32px 24px 0}.sq-suggestions-label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;margin:0 0 12px}.sq-suggestions-grid{display:flex;flex-wrap:wrap;gap:8px}.sq-suggestion-btn{padding:7px 14px;background:#fff;border:1px solid #e5e7eb;border-radius:20px;font-size:.82rem;color:#374151;cursor:pointer;transition:background .15s,border-color .15s;text-align:left}.sq-suggestion-btn:hover{background:#f0fdf4;border-color:#86efac;color:#166534}.sq-messages{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px}.sq-msg{display:flex}.sq-msg-user{justify-content:flex-end}.sq-msg-assistant{justify-content:flex-start}.sq-msg-bubble{max-width:85%;padding:10px 14px;border-radius:12px;font-size:.875rem;line-height:1.5}.sq-msg-user .sq-msg-bubble{background:#00a651;color:#fff;border-bottom-right-radius:3px}.sq-msg-assistant .sq-msg-bubble{background:#fff;border:1px solid #e5e7eb;color:#1a1a1a;border-bottom-left-radius:3px;max-width:92%;width:100%}.sq-msg-text{margin:0 0 4px}.sq-msg-error{margin:6px 0 0;color:#b91c1c;font-size:.8rem;font-family:SF Mono,Fira Code,monospace}.sq-msg-thinking{padding:12px 16px;display:flex;gap:5px;align-items:center}.sq-dot{width:7px;height:7px;border-radius:50%;background:#9ca3af;animation:sq-pulse 1.2s ease-in-out infinite}.sq-dot:nth-child(2){animation-delay:.2s}.sq-dot:nth-child(3){animation-delay:.4s}@keyframes sq-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.sq-sql-block{margin-top:8px}.sq-sql-toggle{background:none;border:none;font-size:.75rem;color:#6b7280;cursor:pointer;padding:0;font-family:inherit}.sq-sql-toggle:hover{color:#374151}.sq-sql-pre{margin:6px 0 0;padding:10px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;font-size:.75rem;font-family:SF Mono,Fira Code,monospace;white-space:pre-wrap;word-break:break-all;color:#374151;max-height:200px;overflow-y:auto}.sq-result-table-wrap{margin-top:10px;overflow-x:auto;border:1px solid #e5e7eb;border-radius:6px}.sq-result-table{width:100%;border-collapse:collapse;font-size:.78rem}.sq-result-table th{background:#f9fafb;padding:6px 10px;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb;white-space:nowrap}.sq-result-table td{padding:5px 10px;border-bottom:1px solid #f3f4f6;color:#1a1a1a;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sq-result-table tr:last-child td{border-bottom:none}.sq-result-table tr:hover td{background:#f9fafb}.sq-null{color:#d1d5db;font-style:italic}.sq-result-footer{display:flex;align-items:center;justify-content:space-between;background:#f9fafb;border-top:1px solid #e5e7eb;padding:4px 10px}.sq-result-count{margin:0;font-size:.72rem;color:#9ca3af}.sq-copy-btn{font-size:.72rem;font-weight:500;color:#6b7280;background:none;border:1px solid #e5e7eb;border-radius:5px;padding:2px 10px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.sq-copy-btn:hover{background:#f3f4f6;color:#374151;border-color:#d1d5db}.sq-copy-btn:active,.sq-copy-btn[data-copied]{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.sq-no-results{margin:8px 0 0;color:#9ca3af;font-size:.82rem}.sq-input-row{display:flex;gap:8px;padding:12px 24px 16px;background:#fff;border-top:1px solid #e5e7eb;flex-shrink:0;align-items:flex-end}.sq-input{flex:1;border:1px solid #d1d5db;border-radius:10px;padding:9px 13px;font-size:.875rem;font-family:inherit;resize:none;outline:none;line-height:1.5;transition:border-color .15s}.sq-input:focus{border-color:#00a651;box-shadow:0 0 0 2px #00a65126}.sq-send-btn{width:38px;height:38px;border-radius:9px;background:#00a651;color:#fff;border:none;font-size:1.1rem;cursor:pointer;flex-shrink:0;transition:background .15s,opacity .15s}.sq-send-btn:disabled{opacity:.4;cursor:not-allowed}.sq-send-btn:not(:disabled):hover{background:#008f44}.sq-mic-btn{width:38px;height:38px;border-radius:9px;background:#f3f4f6;border:1px solid #e5e7eb;font-size:1rem;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s;line-height:1}.sq-mic-btn:hover:not(:disabled){background:#e5e7eb}.sq-mic-btn:disabled{opacity:.4;cursor:not-allowed}.sq-mic-btn-active{background:#fee2e2;border-color:#fca5a5;animation:sq-mic-pulse 1.2s ease-in-out infinite}@keyframes sq-mic-pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 6px #ef444400}}.sq-input-listening{border-color:#ef4444!important;box-shadow:0 0 0 2px #ef444426!important}.sq-mic-error{margin:0;padding:6px 24px;font-size:.78rem;color:#b91c1c;background:#fef2f2;border-top:1px solid #fecaca}.sq-tables-wrap{display:flex;flex-direction:column;height:100%;overflow:hidden}.sq-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;flex-wrap:wrap}.sq-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sq-toolbar-right{display:flex;align-items:center;gap:12px}.sq-date-group{display:flex;align-items:center;gap:6px}.sq-label{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}.sq-date-input{border:1px solid #d1d5db;border-radius:6px;padding:5px 9px;font-size:.82rem;color:#1a1a1a;background:#fff;outline:none}.sq-date-input:focus{border-color:#00a651;box-shadow:0 0 0 2px #00a65126}.sq-date-sep{color:#9ca3af;font-size:.9rem}.sq-selected-badge{font-size:.75rem;font-weight:600;color:#00a651;background:#00a6511a;border:1px solid rgba(0,166,81,.25);border-radius:20px;padding:2px 9px}.sq-sync-btn{padding:7px 16px;background:#00a651;color:#fff;border:none;border-radius:7px;font-size:.84rem;font-weight:600;cursor:not-allowed;opacity:.5}.sq-content{flex:1;overflow-y:auto;padding:14px 24px 28px;display:flex;flex-direction:column;gap:10px}.sq-select-all-row{padding:7px 13px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.sq-select-all-text{font-size:.84rem;font-weight:600;color:#1a1a1a}.sq-group{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.sq-group-header{padding:9px 13px;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;gap:8px}.sq-group-label{display:flex!important;align-items:center;gap:8px;width:100%}.sq-group-icon{font-size:.95rem}.sq-group-name{font-size:.86rem;font-weight:700;color:#1a1a1a;flex:1}.sq-group-count{font-size:.74rem;font-weight:500;color:#9ca3af}.sq-group-body{display:flex;flex-direction:column}.sq-row{display:flex;align-items:center;gap:10px;padding:7px 13px;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background .1s}.sq-row:last-child{border-bottom:none}.sq-row:hover{background:#f9fafb}.sq-row-checked{background:#00a6510a}.sq-row-checked:hover{background:#00a65114}.sq-checkbox{width:14px;height:14px;flex-shrink:0;accent-color:#00a651;cursor:pointer}.sq-check-label{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%}.sq-row-label{flex:0 0 210px;font-size:.84rem;font-weight:500;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sq-row-raw{flex:1;font-size:.73rem;color:#9ca3af;font-family:SF Mono,Fira Code,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sq-row-count{flex:0 0 66px;text-align:right;font-size:.78rem;font-weight:600;color:#374151;font-variant-numeric:tabular-nums}.sq-row-synced{flex:0 0 96px;text-align:right;font-size:.73rem;color:#9ca3af}.sq-mappings-wrap{display:flex;flex-direction:column;height:100%;overflow:hidden}.sq-mappings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 24px;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;flex-wrap:wrap}.sq-mappings-desc{margin:0;font-size:.82rem;color:#6b7280;max-width:580px;line-height:1.5}.sq-mappings-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.sq-seed-btn{padding:7px 14px;background:#fff;border:1px solid #d1d5db;border-radius:7px;font-size:.82rem;font-weight:600;color:#374151;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.sq-seed-btn:hover:not(:disabled){background:#f0fdf4;border-color:#86efac;color:#166534}.sq-seed-btn:disabled{opacity:.5;cursor:not-allowed}.sq-seed-result{font-size:.8rem;color:#00a651;font-weight:500}.sq-mappings-content{flex:1;overflow-y:auto;padding:14px 24px 28px;display:flex;flex-direction:column;gap:10px}.sq-mappings-total{margin:0 0 4px;font-size:.8rem;color:#9ca3af}.sq-map-row{display:flex;align-items:center;gap:10px;padding:7px 13px;border-bottom:1px solid #f3f4f6;font-size:.82rem}.sq-map-row:last-child{border-bottom:none}.sq-map-row:hover{background:#f9fafb}.sq-map-item-name{flex:0 0 220px;font-weight:500;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sq-map-item-id{flex:1;font-size:.72rem;color:#9ca3af;font-family:SF Mono,Fira Code,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sq-map-notes{flex:0 0 200px;font-size:.75rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sq-map-delete{flex-shrink:0;width:24px;height:24px;border-radius:50%;border:none;background:none;color:#d1d5db;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.sq-map-delete:hover{background:#fee2e2;color:#b91c1c}@media (max-width: 600px){.sq-page-header,.sq-toolbar,.sq-content,.sq-messages,.sq-input-row,.sq-mappings-header,.sq-mappings-content{padding-left:14px;padding-right:14px}.sq-row-raw,.sq-row-synced,.sq-map-notes{display:none}.sq-row-label,.sq-map-item-name{flex:1}}.sq-journal-wrap{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px}.sq-journal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.sq-journal-desc{margin:0;font-size:.83rem;color:#6b7280;max-width:600px;line-height:1.5}.sq-journal-total{flex-shrink:0;font-size:.78rem;color:#9ca3af;background:#f3f4f6;padding:3px 10px;border-radius:99px}.sq-journal-list{display:flex;flex-direction:column;gap:10px}.sq-journal-entry{background:#fff;border-radius:10px;border:1px solid #e5e7eb;overflow:hidden}.sq-j-ok{border-left:3px solid #22c55e}.sq-j-fail{border-left:3px solid #ef4444}.sq-j-top{display:flex;align-items:flex-start;gap:10px;padding:12px 14px 8px}.sq-j-badge{flex-shrink:0;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;margin-top:1px}.sq-j-badge-ok{background:#dcfce7;color:#16a34a}.sq-j-badge-fail{background:#fee2e2;color:#b91c1c}.sq-j-question{flex:1;font-size:.9rem;font-weight:500;color:#1a1a1a;line-height:1.4}.sq-j-meta{flex-shrink:0;display:flex;align-items:center;gap:8px}.sq-j-rows{font-size:.75rem;color:#6b7280;background:#f3f4f6;padding:2px 8px;border-radius:99px}.sq-j-ts{font-size:.73rem;color:#9ca3af;white-space:nowrap}.sq-j-error{margin:0 14px 8px;padding:6px 10px;background:#fef2f2;border-radius:6px;font-size:.78rem;color:#b91c1c;font-family:SF Mono,Fira Code,monospace}.sq-j-bottom{display:flex;align-items:flex-start;gap:12px;padding:8px 14px 12px;border-top:1px solid #f3f4f6}.sq-j-thumbs{display:flex;gap:4px;flex-shrink:0;padding-top:4px}.sq-thumb-btn{border:none;background:none;font-size:1rem;cursor:pointer;padding:2px 6px;border-radius:6px;opacity:.4;transition:opacity .15s,background .15s;line-height:1}.sq-thumb-btn:hover{opacity:1;background:#f3f4f6}.sq-thumb-active-up{opacity:1!important;background:#dcfce7!important}.sq-thumb-active-down{opacity:1!important;background:#fee2e2!important}.sq-j-notes-area{flex:1;display:flex;align-items:flex-end;gap:8px}.sq-j-notes{flex:1;font-size:.8rem;font-family:inherit;border:1px solid #e5e7eb;border-radius:6px;padding:6px 10px;color:#374151;resize:none;line-height:1.4;transition:border-color .15s}.sq-j-notes:focus{outline:none;border-color:#00a651}.sq-j-notes::placeholder{color:#d1d5db}.sq-j-save-btn{flex-shrink:0;padding:5px 14px;background:#00a651;color:#fff;border:none;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.sq-j-save-btn:hover{background:#008f45}.sq-j-pagination{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 0 4px}.sq-j-page-btn{padding:5px 16px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;font-size:.82rem;cursor:pointer;color:#374151;transition:background .15s}.sq-j-page-btn:hover:not(:disabled){background:#f3f4f6}.sq-j-page-btn:disabled{opacity:.4;cursor:default}.sq-j-page-info{font-size:.82rem;color:#6b7280}.sq-knowledge-wrap{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:20px}.sq-knowledge-add{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:14px}.sq-knowledge-add-title{display:flex;align-items:flex-start;gap:12px}.sq-knowledge-brain{font-size:1.5rem;line-height:1;flex-shrink:0}.sq-knowledge-add-title h3{margin:0 0 2px;font-size:.95rem;font-weight:700;color:#1a1a1a}.sq-knowledge-add-title p{margin:0;font-size:.8rem;color:#6b7280}.sq-knowledge-form{display:flex;gap:8px;align-items:flex-end}.sq-knowledge-cat-select{flex-shrink:0;height:38px;padding:0 10px;border:1px solid #d1d5db;border-radius:8px;font-size:.82rem;color:#374151;background:#f9fafb;cursor:pointer}.sq-knowledge-input{flex:1;border:1px solid #d1d5db;border-radius:8px;padding:8px 12px;font-size:.85rem;font-family:inherit;resize:none;line-height:1.5;transition:border-color .15s}.sq-knowledge-input:focus{outline:none;border-color:#00a651;box-shadow:0 0 0 2px #00a6511f}.sq-knowledge-add-btn{flex-shrink:0;height:38px;padding:0 18px;background:#00a651;color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.sq-knowledge-add-btn:hover:not(:disabled){background:#008f45}.sq-knowledge-add-btn:disabled{opacity:.4;cursor:not-allowed}.sq-knowledge-body{display:flex;flex-direction:column;gap:20px}.sq-knowledge-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.sq-knowledge-section-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f3f4f6;background:#fafafa}.sq-knowledge-section-title{font-size:.85rem;font-weight:700;color:#374151}.sq-knowledge-section-count{font-size:.75rem;color:#9ca3af}.sq-knowledge-empty{padding:24px 16px;font-size:.85rem;color:#9ca3af;text-align:center;margin:0}.sq-knowledge-group{border-bottom:1px solid #f3f4f6}.sq-knowledge-group:last-child{border-bottom:none}.sq-knowledge-group-label{padding:7px 16px 4px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af}.sq-knowledge-row{display:flex;align-items:flex-start;gap:10px;padding:8px 16px;border-bottom:1px solid #f9fafb;transition:background .1s}.sq-knowledge-row:last-child{border-bottom:none}.sq-knowledge-row:hover{background:#fafafa}.sq-knowledge-row-inactive{opacity:.45}.sq-knowledge-active-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;margin-top:5px}.sq-dot-on{background:#22c55e}.sq-dot-off{background:#d1d5db}.sq-knowledge-content{flex:1;font-size:.85rem;color:#1a1a1a;line-height:1.5}.sq-knowledge-lesson-body{flex:1;display:flex;flex-direction:column;gap:2px}.sq-knowledge-lesson-source{font-size:.72rem;color:#9ca3af;font-style:italic}.sq-knowledge-row-actions{display:flex;gap:2px;flex-shrink:0;opacity:0;transition:opacity .15s}.sq-knowledge-row:hover .sq-knowledge-row-actions{opacity:1}.sq-knowledge-icon-btn{width:26px;height:26px;border:none;background:none;border-radius:6px;cursor:pointer;font-size:.8rem;color:#9ca3af;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.sq-knowledge-icon-btn:hover{background:#f3f4f6;color:#374151}.sq-knowledge-delete-btn:hover{background:#fee2e2!important;color:#b91c1c!important}.sq-knowledge-edit-input{flex:1;border:1px solid #00a651;border-radius:6px;padding:6px 10px;font-size:.85rem;font-family:inherit;resize:none;line-height:1.4;outline:none}.sq-knowledge-save-btn{padding:4px 12px;background:#00a651;color:#fff;border:none;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer}.sq-knowledge-cancel-btn{padding:4px 10px;background:none;border:1px solid #e5e7eb;border-radius:6px;font-size:.8rem;color:#6b7280;cursor:pointer}.sq-j-note-actions{display:flex;gap:6px;align-items:center;flex-shrink:0;flex-direction:column}.sq-j-promote-btn{padding:5px 10px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.sq-j-promote-btn:hover:not(:disabled){background:#dbeafe}.sq-j-promote-btn:disabled{opacity:.5;cursor:default}.sq-j-promoted-badge{font-size:.75rem;color:#16a34a;font-weight:600;white-space:nowrap}.sq-facts-saved{display:flex;gap:10px;align-items:flex-start;margin:6px 0;padding:10px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px}.sq-facts-saved-icon{font-size:1.1rem;flex-shrink:0;line-height:1.4}.sq-facts-saved-label{margin:0 0 4px;font-size:.78rem;font-weight:700;color:#15803d}.sq-facts-saved-item{margin:2px 0 0;font-size:.82rem;color:#166534}.sq-facts-saved-cat{font-weight:600}.food-layout{max-width:960px;margin:0;padding:0 0 2rem}.food-layout-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600}.food-layout-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem;margin:0 0 1.25rem}.food-layout-tabs a{padding:.5rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-size:.9rem;cursor:pointer;text-decoration:none}.food-layout-tabs a:hover{border-color:var(--primary-soft)}.food-layout-tabs a.active{background:var(--primary);color:#fff;border-color:var(--primary)}.prod-wrap{padding:24px;max-width:1400px}.prod-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.prod-title{font-size:1.5rem;font-weight:700;margin:0 0 4px}.prod-subtitle{font-size:.85rem;color:#666;margin:0}.prod-add-btn{padding:8px 18px;background:#4f46e5;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s;align-self:flex-start}.prod-add-btn:hover{background:#4338ca}.prod-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;align-items:center}.prod-search{flex:1;min-width:200px;max-width:300px;padding:7px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem}.prod-filters select{padding:7px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background:#fff;cursor:pointer}.prod-clear-btn{padding:7px 12px;border:1px solid #d1d5db;border-radius:6px;background:#f3f4f6;font-size:.875rem;cursor:pointer;color:#374151}.prod-clear-btn:hover{background:#e5e7eb}.prod-loading,.prod-empty,.prod-error{padding:48px;text-align:center;color:#6b7280;font-size:1rem}.prod-error{color:#dc2626}.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.prod-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;cursor:pointer;transition:box-shadow .15s,transform .1s}.prod-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-1px)}.prod-card:focus{outline:2px solid #6366f1;outline-offset:2px}.prod-card-img{height:160px;background:#f9fafb;display:flex;align-items:center;justify-content:center;overflow:hidden}.prod-card-img img{width:100%;height:100%;object-fit:cover}.prod-card-no-img{font-size:3rem;opacity:.3}.prod-card-body{padding:12px}.prod-card-name{font-weight:600;font-size:.95rem;margin-bottom:8px;line-height:1.3}.prod-card-meta{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.prod-meta-pill{background:#ede9fe;color:#5b21b6;border-radius:4px;padding:2px 7px;font-size:.75rem;font-weight:500}.prod-meta-light{background:#f3f4f6;color:#374151}.prod-card-footer{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#6b7280;margin-bottom:8px}.prod-card-price{font-weight:600;color:#111827;font-size:.9rem}.prod-card-avail{margin-left:auto;font-size:.75rem;color:#6b7280}.prod-card-sync{display:flex;align-items:center;gap:5px;font-size:.75rem}.prod-sync-label{color:#9ca3af;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.prod-sync-badge{border-radius:4px;padding:1px 6px;font-size:.7rem;font-weight:600;margin-right:4px}.prod-sync-ok{background:#d1fae5;color:#065f46}.prod-sync-pending{background:#fef3c7;color:#92400e}.prod-sync-error{background:#fee2e2;color:#991b1b}.prod-sync-none{background:#f3f4f6;color:#9ca3af}.prod-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:32px;font-size:.9rem;color:#374151}.prod-pagination button{padding:8px 16px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;font-size:.875rem}.prod-pagination button:disabled{opacity:.4;cursor:not-allowed}.prod-pagination button:not(:disabled):hover{background:#f3f4f6}.prod-tabs{display:flex;gap:.5rem;margin:0 0 1.25rem;border-bottom:2px solid var(--border, #e5e7eb);padding-bottom:0}.prod-tabs button{padding:.5rem 1.25rem;border:none;background:transparent;font-size:.95rem;color:var(--text-muted, #6b7280);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px}.prod-tabs button.active{color:var(--primary, #2563eb);border-bottom-color:var(--primary, #2563eb);font-weight:600}.prod-tabs button:hover:not(.active){color:var(--text, #111)}.tax-exempt-wrap{max-width:1000px}.tax-exempt-intro{margin-bottom:1.25rem;color:var(--text-muted, #6b7280);font-size:.9rem}.tax-exempt-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem}@media (max-width: 640px){.tax-exempt-columns{grid-template-columns:1fr}}.tax-col{border:1px solid var(--border, #e5e7eb);border-radius:10px;background:var(--card, #fff);overflow:hidden}.tax-col-exempt{background:#f0fdf4;border-color:#86efac}.tax-drag-over{border-color:var(--primary, #2563eb);background:#eff6ff}.tax-col-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border, #e5e7eb);background:var(--card, #fff);flex-wrap:wrap}.tax-col-exempt .tax-col-header{background:#f0fdf4;border-color:#86efac}.tax-col-header h3{margin:0;font-size:.95rem;font-weight:600}.tax-col-count{font-weight:400;color:var(--text-muted, #6b7280)}.tax-col-search{flex:1;min-width:120px;padding:.3rem .6rem;border:1px solid var(--border, #e5e7eb);border-radius:6px;font-size:.875rem}.tax-item-list{list-style:none;margin:0;padding:.5rem;max-height:360px;overflow-y:auto}.tax-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .5rem;border-radius:6px;cursor:grab}.tax-item:hover{background:var(--primary-soft, #eff6ff)}.tax-item-exempt{cursor:default}.tax-item-exempt:hover{background:#dcfce7}.tax-item-name{flex:1;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tax-item-empty{padding:1rem;text-align:center;color:var(--text-muted, #9ca3af);font-size:.875rem;font-style:italic}.btn-tax-add{flex-shrink:0;padding:.2rem .6rem;border:1px solid var(--primary, #2563eb);border-radius:6px;background:transparent;color:var(--primary, #2563eb);font-size:.78rem;cursor:pointer;white-space:nowrap}.btn-tax-add:hover{background:var(--primary, #2563eb);color:#fff}.btn-tax-remove{flex-shrink:0;width:24px;height:24px;border:none;border-radius:50%;background:transparent;color:#ef4444;font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.btn-tax-remove:hover{background:#fee2e2}.tax-gap-section{border-top:1px solid var(--border, #e5e7eb);padding-top:1.5rem;margin-top:1.5rem}.tax-gap-section h3{margin:0 0 .4rem;font-size:1rem}.tax-gap-title{font-size:1rem;font-weight:600;margin:0 0 .35rem}.catalog-sync-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .85rem;background:var(--card-bg, #f9fafb);border:1px solid var(--border, #e5e7eb);border-radius:8px;margin:.75rem 0 0;flex-wrap:wrap}.catalog-sync-status{font-size:.85rem}.sync-ok{color:#166534}.sync-err{color:#c0392b}.sync-running{color:#92400e}.sync-none{color:#9ca3af}.tax-gap-hint{margin:0 0 1rem;font-size:.875rem;color:var(--text-muted, #6b7280)}.tax-gap-controls{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.tax-gap-controls label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:500}.tax-gap-controls input[type=date]{padding:.4rem .6rem;border:1px solid var(--border, #d1d5db);border-radius:6px;font-size:.875rem}.btn-tax-gap-run{padding:.5rem 1.25rem;background:var(--primary, #2563eb);color:#fff;border:none;border-radius:8px;font-size:.9rem;cursor:pointer}.btn-tax-gap-run:disabled{opacity:.6;cursor:default}.btn-tax-gap-run:not(:disabled):hover{filter:brightness(1.08)}.tax-gap-clear{padding:.75rem 1rem;background:#f0fdf4;border:1px solid #86efac;border-radius:8px;color:#166534;font-size:.9rem}.tax-gap-summary{padding:.75rem 1rem;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;color:#9a3412;font-size:.9rem;margin-bottom:1rem}.tax-gap-table{width:100%;border-collapse:collapse;font-size:.875rem}.tax-gap-table th{text-align:left;padding:.5rem .75rem;background:#f9fafb;border-bottom:2px solid var(--border, #e5e7eb);font-weight:600}.tax-gap-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border, #e5e7eb)}.tax-gap-table tr:hover td{background:#f9fafb}.tax-gap-owed{color:#dc2626;font-weight:600}.btn-tax-add-small{padding:.2rem .55rem;border:1px solid var(--primary, #2563eb);border-radius:5px;background:transparent;color:var(--primary, #2563eb);font-size:.78rem;cursor:pointer;white-space:nowrap}.btn-tax-add-small:hover{background:var(--primary, #2563eb);color:#fff}.tax-category-badge{display:inline-block;margin-left:.4rem;padding:.1rem .4rem;background:#f3f4f6;color:#374151;border-radius:99px;font-size:.72rem;white-space:nowrap;vertical-align:middle}.tax-no-category{color:#9ca3af;font-size:.85rem}.pd-wrap{max-width:900px;padding:24px;margin:0 auto}.pd-back-link{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;color:#6b7280;text-decoration:none;margin-bottom:16px;cursor:pointer;background:none;border:none;padding:0}.pd-back-link:hover{color:#111827}.pd-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.pd-header-left{display:flex;flex-direction:column;gap:6px}.pd-header-title{font-size:1.4rem;font-weight:700;margin:0;color:#111827}.pd-header-subtitle{font-size:.85rem;color:#6b7280;margin:0}.pd-header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pd-sync-badge{font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:20px;white-space:nowrap}.pd-sync-ok{background:#d1fae5;color:#065f46}.pd-sync-pending{background:#fef3c7;color:#92400e}.pd-sync-error{background:#fee2e2;color:#991b1b}.pd-sync-none{background:#f3f4f6;color:#9ca3af}.pd-save-btn{padding:8px 20px;background:#4f46e5;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.pd-save-btn:hover:not(:disabled){background:#4338ca}.pd-save-btn:disabled{opacity:.55;cursor:not-allowed}.pd-error{background:#fee2e2;color:#991b1b;border-radius:6px;padding:10px 14px;font-size:.875rem;margin-bottom:16px}.pd-warning{background:#fef3c7;color:#92400e;border-radius:6px;padding:10px 14px;font-size:.875rem;margin-bottom:16px}.pd-success{background:#d1fae5;color:#065f46;border-radius:6px;padding:10px 14px;font-size:.875rem;margin-bottom:16px}.pd-tabs{display:flex;gap:4px;border-bottom:2px solid #e5e7eb;margin-bottom:24px}.pd-tab-btn{padding:8px 18px;background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;font-size:.9rem;font-weight:500;color:#6b7280;cursor:pointer;transition:color .15s,border-color .15s}.pd-tab-btn:hover{color:#374151}.pd-tab-btn.active{color:#4f46e5;border-bottom-color:#4f46e5;font-weight:600}.pd-section{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:20px;margin-bottom:20px}.pd-section-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#9ca3af;margin:0 0 16px}.pd-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.pd-field:last-child{margin-bottom:0}.pd-field label{font-size:.8rem;font-weight:600;color:#374151}.pd-field input[type=text],.pd-field input[type=number],.pd-field input[type=date],.pd-field select,.pd-field textarea{padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;font-family:inherit;color:#111827;background:#fff;transition:border-color .15s;width:100%;box-sizing:border-box}.pd-field input:focus,.pd-field select:focus,.pd-field textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.pd-field textarea{resize:vertical;min-height:90px}.pd-field textarea.tall{min-height:140px}.pd-field-check{display:flex;align-items:center;gap:10px;margin-bottom:14px}.pd-field-check input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#4f46e5}.pd-field-check label{font-size:.9rem;color:#374151;cursor:pointer}.pd-row{display:flex;gap:14px}.pd-row .pd-field{flex:1;min-width:0}.tag-input-wrap{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 8px;border:1px solid #d1d5db;border-radius:6px;background:#fff;min-height:38px;cursor:text;box-sizing:border-box}.tag-input-wrap:focus-within{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.tag-pill{display:inline-flex;align-items:center;gap:4px;background:#ede9fe;color:#5b21b6;border-radius:20px;padding:2px 8px 2px 10px;font-size:.8rem;font-weight:500;white-space:nowrap}.tag-pill button{background:none;border:none;cursor:pointer;color:#7c3aed;padding:0;line-height:1;font-size:1rem;display:flex;align-items:center}.tag-pill button:hover{color:#5b21b6}.tag-text-input{border:none!important;outline:none!important;box-shadow:none!important;padding:2px 4px!important;font-size:.875rem;min-width:100px;flex:1;background:transparent}.pd-variants-table{width:100%;border-collapse:collapse;font-size:.875rem}.pd-variants-table th{text-align:left;padding:8px 10px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;border-bottom:1px solid #e5e7eb}.pd-variants-table td{padding:8px 10px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.pd-variants-table tr:last-child td{border-bottom:none}.pd-variants-table input[type=text],.pd-variants-table input[type=number]{padding:5px 8px;border:1px solid #d1d5db;border-radius:5px;font-size:.85rem;width:100%;box-sizing:border-box}.pd-variants-table input:focus{outline:none;border-color:#6366f1}.pd-variants-table .avail-check{accent-color:#4f46e5;width:15px;height:15px;cursor:pointer}.pd-add-variant-btn{margin-top:12px;padding:7px 14px;background:#f3f4f6;border:1px dashed #d1d5db;border-radius:6px;color:#374151;font-size:.875rem;cursor:pointer;transition:background .15s}.pd-add-variant-btn:hover{background:#e5e7eb}.pd-c7id{font-size:.75rem;color:#9ca3af;font-family:monospace}.pd-loading{padding:60px;text-align:center;color:#6b7280}@media (max-width: 600px){.pd-row{flex-direction:column;gap:0}.pd-header{flex-direction:column;align-items:flex-start}}.bc-wrap{padding:24px;max-width:1200px}.bc-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.bc-title{margin:0 0 4px;font-size:1.4rem;font-weight:700}.bc-subtitle{margin:0;font-size:.85rem;color:#888}.bc-controls{display:flex;gap:8px}.bc-select{padding:7px 10px;border:1px solid #ddd;border-radius:6px;font-size:.88rem;background:#fff;cursor:pointer}.bc-summary{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.bc-stat{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;padding:12px 20px;text-align:center;min-width:90px}.bc-stat-n{display:block;font-size:1.6rem;font-weight:700;color:#333}.bc-stat-l{display:block;font-size:.75rem;color:#888;margin-top:2px}.bc-stat-match{border-color:#b2f2bb;background:#f0fff4}.bc-stat-match .bc-stat-n{color:#2b8a3e}.bc-stat-mismatch{border-color:#ffc9c9;background:#fff5f5}.bc-stat-mismatch .bc-stat-n{color:#c92a2a}.bc-stat-pending{border-color:#ffe8cc;background:#fff8f0}.bc-stat-pending .bc-stat-n{color:#e67700}.bc-stat-pct{border-color:#d0bfff;background:#f5f0ff}.bc-stat-pct .bc-stat-n{color:#6741d9}.bc-table{width:100%;border-collapse:collapse;font-size:.875rem}.bc-table th{text-align:left;padding:9px 12px;border-bottom:2px solid #e9ecef;color:#555;font-weight:600;white-space:nowrap}.bc-th-amt{text-align:right}.bc-row{cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background .1s}.bc-row:hover{background:#f8f9fa}.bc-row-open{background:#f0f4ff!important}.bc-row-mismatch{border-left:3px solid #ff6b6b}.bc-row-match{border-left:3px solid #69db7c}.bc-row td{padding:10px 12px;vertical-align:middle}.bc-td-date{white-space:nowrap;color:#666;font-size:.82rem}.bc-td-type{color:#888;font-size:.8rem}.bc-td-amt{text-align:right;font-weight:600;white-space:nowrap}.bc-td-account{color:#333;font-size:.84rem;max-width:180px}.bc-td-desc{max-width:200px}.bc-payee{font-weight:500}.bc-desc-note{font-size:.78rem;color:#888;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bc-norec{color:#bbb;font-style:italic}.bc-badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:.76rem;font-weight:600;white-space:nowrap}.ag-match{background:#d3f9d8;color:#2b8a3e}.ag-mismatch{background:#ffe3e3;color:#c92a2a}.ag-none{background:#f1f3f5;color:#868e96}.st-pending{background:#fff3bf;color:#e67700}.st-agree{background:#d3f9d8;color:#2b8a3e}.st-disagree{background:#ffe3e3;color:#c92a2a}.st-review{background:#ffe8cc;color:#d9480f}.bc-detail-row td{padding:0;background:#f0f4ff}.bc-detail{padding:16px 20px;border-top:1px solid #d0d8ff}.bc-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}.bc-detail-reasoning{grid-column:1 / -1;background:#fff;border:1px solid #d0bfff;border-radius:8px;padding:10px 14px}.bc-detail-reasoning h5{margin:0 0 6px;font-size:.82rem;color:#6741d9}.bc-detail-reasoning p{margin:0;font-size:.88rem;color:#444}.bc-detail-col h5{margin:0 0 6px;font-size:.8rem;color:#666;text-transform:uppercase;letter-spacing:.05em}.bc-detail-account{font-size:1rem;font-weight:600;color:#333}.bc-detail-class{font-size:.82rem;color:#888;margin-top:3px}.bc-confidence{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:10px;font-size:.76rem;font-weight:600}.bc-conf-high{background:#d3f9d8;color:#2b8a3e}.bc-conf-medium{background:#fff3bf;color:#e67700}.bc-conf-low{background:#ffe3e3;color:#c92a2a}.bc-no-rec{color:#bbb;font-style:italic}.bc-review-bar{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;padding-top:12px;border-top:1px solid #dce3f5}.bc-review-note{flex:1;min-width:200px;padding:7px 10px;border:1px solid #d0d8ff;border-radius:6px;font-size:.85rem;resize:vertical}.bc-review-btns{display:flex;gap:6px;flex-wrap:wrap}.bc-btn-agree,.bc-btn-disagree,.bc-btn-needs-review{padding:7px 14px;border-radius:6px;border:none;cursor:pointer;font-size:.82rem;font-weight:600}.bc-btn-agree{background:#d3f9d8;color:#2b8a3e}.bc-btn-agree:hover{background:#69db7c}.bc-btn-disagree{background:#ffe3e3;color:#c92a2a}.bc-btn-disagree:hover{background:#ff6b6b;color:#fff}.bc-btn-needs-review{background:#ffe8cc;color:#d9480f}.bc-btn-needs-review:hover{background:#ff922b;color:#fff}.bc-reviewed-by{font-size:.78rem;color:#888;margin-top:8px;font-style:italic}.bc-loading{color:#aaa;font-style:italic;padding:20px 0}.bc-error{color:#c92a2a;background:#fff5f5;border:1px solid #ffc9c9;border-radius:6px;padding:10px 14px}.bc-empty{text-align:center;padding:48px 0;color:#888}.bc-empty p{margin:0 0 8px}.bc-empty-hint{font-size:.84rem;color:#aaa}.bc-empty-hint code{background:#f1f3f5;padding:2px 6px;border-radius:4px}.qb-status-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.25rem 1.5rem;margin-bottom:1.5rem}.qb-status-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem;font-weight:500}.qb-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.qb-status-dot.connected{background:#4caf50}.qb-sync-info{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;color:#555;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.qb-sync-never{color:#e65100}.qb-counts{display:flex;gap:1rem;font-weight:500;color:#333}.bc-sync-msg{color:#2e7d32;font-size:.875rem;margin:0 0 1rem}.gw-wrap{padding:24px;max-width:1200px}.gw-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.gw-title{margin:0 0 4px;font-size:1.4rem;font-weight:700}.gw-subtitle{margin:0;font-size:.85rem;color:#888}.gw-tabs{display:flex;gap:2px;border-bottom:2px solid #e9ecef;margin-bottom:20px}.gw-tab{padding:8px 18px;border:none;background:none;cursor:pointer;font-size:.9rem;color:#666;border-bottom:2px solid transparent;margin-bottom:-2px;display:flex;align-items:center;gap:6px;transition:color .15s}.gw-tab:hover{color:#333}.gw-tab-active{color:#2f54eb;border-bottom-color:#2f54eb;font-weight:600}.gw-tab-badge{background:#ff4d4f;color:#fff;border-radius:10px;padding:1px 7px;font-size:.72rem;font-weight:700}.gw-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.76rem;font-weight:600;white-space:nowrap}.gw-badge-pending{background:#fff3bf;color:#e67700}.gw-badge-executing{background:#d0ebff;color:#1864ab}.gw-badge-completed{background:#d3f9d8;color:#2b8a3e}.gw-badge-failed{background:#ffe3e3;color:#c92a2a}.gw-badge-rejected{background:#f1f3f5;color:#868e96}.gw-list{display:flex;flex-direction:column;gap:10px}.gw-card{border:1px solid #e9ecef;border-radius:10px;overflow:hidden;background:#fff}.gw-card-open{border-color:#91caff}.gw-card-header{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;background:#fafafa;transition:background .1s}.gw-card-header:hover,.gw-card-open .gw-card-header{background:#f0f4ff}.gw-service-icon{font-size:1.3rem;flex-shrink:0}.gw-card-main{flex:1;min-width:0}.gw-card-op{display:flex;gap:8px;align-items:baseline}.gw-service{font-size:.78rem;color:#888;text-transform:uppercase;letter-spacing:.04em}.gw-op{font-weight:600;font-size:.95rem;color:#222}.gw-card-meta{font-size:.8rem;color:#888;margin-top:2px}.gw-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.gw-auto-timer{font-size:.76rem;color:#e67700;background:#fff3bf;padding:2px 8px;border-radius:10px;font-weight:600}.gw-card-body{padding:16px;border-top:1px solid #e9ecef}.gw-payload{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:10px 14px;font-size:.8rem;overflow-x:auto;max-height:260px;white-space:pre-wrap;word-break:break-all;margin:0 0 14px}.gw-payload-err{background:#fff5f5;border-color:#ffc9c9;color:#c92a2a}.gw-card-actions{display:flex;gap:8px;flex-wrap:wrap}.gw-btn-approve,.gw-btn-reject-start,.gw-btn-reject-confirm,.gw-btn-cancel,.gw-btn-new-rule,.gw-btn-save-rule,.gw-btn-edit-rule,.gw-btn-delete-rule{padding:7px 16px;border-radius:6px;border:none;cursor:pointer;font-size:.84rem;font-weight:600;transition:filter .1s}.gw-btn-approve{background:#d3f9d8;color:#2b8a3e}.gw-btn-approve:hover{filter:brightness(.92)}.gw-btn-reject-start{background:#ffe3e3;color:#c92a2a}.gw-btn-reject-start:hover{filter:brightness(.92)}.gw-btn-reject-confirm{background:#ff6b6b;color:#fff}.gw-btn-reject-confirm:hover{filter:brightness(.9)}.gw-btn-cancel{background:#f1f3f5;color:#555}.gw-btn-cancel:hover{background:#dee2e6}.gw-reject-form{display:flex;flex-direction:column;gap:8px}.gw-reject-note{padding:7px 10px;border:1px solid #ffc9c9;border-radius:6px;font-size:.85rem;resize:vertical}.gw-reject-note-display{margin:8px 0 0;font-size:.85rem;color:#666}.gw-log-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.gw-select{padding:7px 10px;border:1px solid #ddd;border-radius:6px;font-size:.88rem;background:#fff;cursor:pointer}.gw-table{width:100%;border-collapse:collapse;font-size:.875rem}.gw-table th{text-align:left;padding:8px 12px;border-bottom:2px solid #e9ecef;color:#555;font-weight:600;white-space:nowrap}.gw-log-row{cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background .1s}.gw-log-row:hover{background:#f8f9fa}.gw-log-row-open{background:#f0f4ff!important}.gw-log-row td{padding:9px 12px;vertical-align:middle}.gw-td-date{white-space:nowrap;color:#666;font-size:.82rem}.gw-td-actor{font-size:.82rem;color:#555}.gw-service-sm{font-size:.78rem;color:#888;display:block}.gw-op-sm{font-size:.88rem;font-weight:500}.gw-log-detail-row td{padding:0;background:#f0f4ff}.gw-log-detail{padding:14px 18px;border-top:1px solid #d0d8ff}.gw-detail-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}.gw-detail-cols h5{margin:0 0 6px;font-size:.78rem;color:#666;text-transform:uppercase}.gw-rules-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;flex-wrap:wrap}.gw-rules-hint{margin:0;font-size:.85rem;color:#666;max-width:600px}.gw-btn-new-rule{background:#2f54eb;color:#fff}.gw-btn-new-rule:hover{filter:brightness(.9)}.gw-rule-form{border:1px solid #91caff;border-radius:10px;padding:18px;background:#f0f4ff;margin-bottom:16px}.gw-rule-form-title{margin:0 0 14px;font-size:1rem;font-weight:700;color:#1d39c4}.gw-rule-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.gw-rule-form-grid label{display:flex;flex-direction:column;font-size:.82rem;color:#555;gap:4px}.gw-rule-form-grid input[type=text],.gw-rule-form-grid input[type=number]{padding:6px 10px;border:1px solid #d0d8ff;border-radius:6px;font-size:.88rem}.gw-rule-checkbox{flex-direction:row!important;align-items:center;gap:8px!important}.gw-rule-checkbox input{width:16px;height:16px}.gw-rule-form-btns{display:flex;gap:8px}.gw-btn-save-rule{background:#2f54eb;color:#fff}.gw-btn-save-rule:hover{filter:brightness(.9)}.gw-rule-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e9ecef;border-radius:8px;padding:12px 16px;background:#fff;margin-bottom:8px}.gw-rule-disabled{opacity:.55}.gw-rule-card-main{display:flex;gap:12px;align-items:center}.gw-rule-priority{font-size:.75rem;color:#aaa;font-weight:700;min-width:32px}.gw-rule-name{font-weight:600;font-size:.92rem;margin-bottom:3px}.gw-rule-patterns{font-size:.82rem;color:#555}.gw-rule-patterns code{background:#f1f3f5;padding:1px 5px;border-radius:3px;font-size:.8rem}.gw-rule-auto{color:#e67700;font-weight:600}.gw-rule-manual{color:#1864ab;font-weight:600}.gw-rule-skip{color:#2b8a3e;font-weight:600}.gw-rule-card-actions{display:flex;align-items:center;gap:8px}.gw-rule-off-badge{background:#f1f3f5;color:#868e96;border-radius:10px;padding:2px 8px;font-size:.72rem;font-weight:700}.gw-btn-edit-rule{background:#f1f3f5;color:#333;padding:5px 12px}.gw-btn-edit-rule:hover{background:#dee2e6}.gw-btn-delete-rule{background:#ffe3e3;color:#c92a2a;padding:5px 12px}.gw-btn-delete-rule:hover{filter:brightness(.92)}.gw-loading{color:#aaa;font-style:italic;padding:20px 0}.gw-error{color:#c92a2a;background:#fff5f5;border:1px solid #ffc9c9;border-radius:6px;padding:10px 14px}.gw-empty{text-align:center;padding:48px 0;color:#888}.gw-empty p{margin:0 0 6px}.gw-empty-hint{font-size:.84rem;color:#aaa}@media (max-width: 700px){.gw-rule-form-grid,.gw-detail-cols{grid-template-columns:1fr}}.skynet-page{padding:2rem;max-width:900px}.skynet-loading,.skynet-empty{padding:3rem;text-align:center;color:var(--text-secondary, #666)}.skynet-error{color:var(--color-error, #c0392b);padding:.75rem 1rem;background:#fdf0ef;border-radius:6px;margin-bottom:1rem}.skynet-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;gap:1rem}.skynet-header h1{margin:0 0 .25rem;font-size:1.6rem;font-weight:700}.skynet-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.skynet-header-actions .btn-secondary{text-decoration:none;white-space:nowrap}.skynet-subtitle{margin:0;color:var(--text-secondary, #666);font-size:.9rem}.skynet-config-panel{background:var(--card-bg, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;padding:2rem;max-width:520px}.skynet-config-panel h2{margin:0 0 .5rem}.skynet-config-panel p{margin:0 0 1.5rem;color:var(--text-secondary, #666);font-size:.9rem}.skynet-form-wrapper{background:var(--card-bg, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;padding:1.5rem;margin-bottom:1.5rem}.skynet-form-wrapper h2{margin:0 0 1rem;font-size:1.1rem}.skynet-form-row{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.skynet-form-row label{font-size:.8rem;font-weight:600;color:var(--text-secondary, #555);text-transform:uppercase;letter-spacing:.04em}.skynet-optional{font-weight:400;text-transform:none;color:#999}.skynet-form-row input,.skynet-form-row select,.skynet-form-row textarea{padding:.55rem .75rem;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.95rem;font-family:inherit;background:var(--input-bg, #fff);color:var(--text-primary, #111);width:100%;box-sizing:border-box}.skynet-form-row textarea{resize:vertical;min-height:90px}.skynet-form-row input:focus,.skynet-form-row select:focus,.skynet-form-row textarea:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f626}.skynet-time-row{display:flex;gap:.5rem}.skynet-time-row select{flex:1}.skynet-form-error{color:var(--color-error, #c0392b);font-size:.9rem;margin:.5rem 0}.skynet-form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.skynet-list{display:flex;flex-direction:column;gap:1rem}.skynet-card{background:var(--card-bg, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;padding:1.25rem;transition:opacity .15s}.skynet-card-disabled{opacity:.55}.skynet-card-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.skynet-card-meta{display:flex;flex-direction:column;gap:.15rem}.skynet-card-name{font-weight:600;font-size:1rem}.skynet-card-agent{font-size:.8rem;color:var(--text-secondary, #666);background:var(--badge-bg, #f3f4f6);padding:.1rem .5rem;border-radius:99px;width:fit-content}.skynet-card-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.skynet-card-schedule{font-size:.85rem;font-weight:500;color:var(--color-primary, #3b82f6);margin:0 0 .4rem}.skynet-card-prompt{font-size:.88rem;color:var(--text-secondary, #555);margin:0 0 .75rem;white-space:pre-wrap;line-height:1.45;max-height:4.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.skynet-card-footer{display:flex;gap:1.25rem;font-size:.78rem;color:var(--text-secondary, #888);flex-wrap:wrap}.btn-primary{padding:.5rem 1.1rem;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-secondary{padding:.5rem 1.1rem;background:transparent;color:var(--text-primary, #333);border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.9rem;cursor:pointer}.btn-secondary:hover{background:var(--hover-bg, #f3f4f6)}.btn-run{padding:.3rem .65rem;background:#10b981;color:#fff;border:none;border-radius:5px;font-size:.8rem;cursor:pointer}.btn-run:hover:not(:disabled){filter:brightness(1.1)}.btn-run:disabled{opacity:.5;cursor:default}.btn-delete{padding:.3rem .65rem;background:transparent;color:#9ca3af;border:1px solid #e5e7eb;border-radius:5px;font-size:.8rem;cursor:pointer}.btn-delete:hover:not(:disabled){background:#fee2e2;color:#c0392b;border-color:#fca5a5}.btn-edit{padding:.3rem .65rem;background:transparent;color:#6b7280;border:1px solid #e5e7eb;border-radius:5px;font-size:.9rem;cursor:pointer}.btn-edit:hover{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.skynet-toggle{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.skynet-toggle input{opacity:0;width:0;height:0}.skynet-toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#d1d5db;border-radius:22px;transition:background .2s}.skynet-toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}.skynet-toggle input:checked+.skynet-toggle-slider{background:#3b82f6}.skynet-toggle input:checked+.skynet-toggle-slider:before{transform:translate(18px)}.skynet-test-panel{background:var(--card, #fff);border:1px solid var(--border, #e2e8f0);border-radius:12px;margin-bottom:1.25rem;overflow:hidden}.skynet-test-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.85rem 1rem;background:transparent;border:none;font-size:.95rem;font-weight:600;color:var(--text, #1a202c);text-align:left;cursor:pointer}.skynet-test-toggle:hover{background:var(--primary-soft, #ebf4ff)}.skynet-test-toggle-icon{font-size:.85rem;color:var(--text-muted, #718096)}.skynet-test-badge{margin-left:auto;font-size:.72rem;font-weight:500;background:#fef3c7;color:#92400e;border-radius:99px;padding:.15rem .6rem;white-space:nowrap}.skynet-test-form{padding:0 1rem 1rem;border-top:1px solid var(--border, #e2e8f0);display:flex;flex-direction:column;gap:.75rem}.skynet-test-result{display:flex;align-items:center;gap:.5rem;padding:.6rem .85rem;border-radius:8px;font-size:.9rem;font-weight:500}.skynet-test-ok{background:#f0fff4;color:#276749;border:1px solid #9ae6b4}.skynet-test-err{background:#fff5f5;color:#c53030;border:1px solid #feb2b2}.skynet-test-result-icon{font-size:1rem}.skynet-test-issue-id{font-size:.8rem;opacity:.75;font-family:monospace}.skynet-model-wrap{position:relative;display:flex;align-items:center;gap:.4rem}.skynet-model-select{flex:1}.skynet-model-info-btn{background:none;border:1px solid var(--border, #ddd);border-radius:50%;width:22px;height:22px;font-size:.8rem;cursor:pointer;color:var(--text-muted, #888);display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}.skynet-model-info-btn:hover{background:var(--hover-bg, #f5f5f5);color:var(--primary, #4f6ef7)}.skynet-model-info-popup{position:absolute;top:calc(100% + 6px);left:0;z-index:200;background:#fff;border:1px solid var(--border, #ddd);border-radius:8px;box-shadow:0 4px 20px #0000001f;padding:.75rem;min-width:560px;max-width:90vw}.skynet-model-table{width:100%;border-collapse:collapse;font-size:.82rem}.skynet-model-table th{text-align:left;padding:.3rem .6rem;border-bottom:1px solid var(--border, #eee);color:var(--text-muted, #888);font-weight:600;white-space:nowrap}.skynet-model-table td{padding:.35rem .6rem;border-bottom:1px solid var(--border, #f5f5f5);vertical-align:top}.skynet-model-table tr.skynet-model-active td{background:#f0f4ff;font-weight:500}.skynet-model-table tr:last-child td{border-bottom:none}.skynet-model-info-close{margin-top:.5rem;background:none;border:none;color:var(--text-muted, #888);cursor:pointer;font-size:.8rem;padding:.2rem .4rem}.skynet-model-info-close:hover{color:var(--text-primary, #333)}.user-menu{position:relative;margin-left:auto}.user-menu-trigger{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-size:.9rem;max-width:min(240px,70vw)}.user-menu-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-chevron{flex-shrink:0;color:var(--text-muted);font-size:.65rem;line-height:1}.user-menu-dropdown{position:absolute;right:0;top:calc(100% + 4px);min-width:200px;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:100;padding:.35rem 0}@media (max-width: 640px){.user-menu-dropdown{position:fixed;top:3.25rem;right:.5rem;left:auto;min-width:min(220px,calc(100vw - 1rem))}}.user-menu-item{display:block;width:100%;text-align:left;padding:.5rem 1rem;border:none;background:none;color:var(--text);font-size:.95rem;text-decoration:none;cursor:pointer}.user-menu-item:hover{background:var(--primary-soft)}.user-menu-item-danger{color:#c62828}.user-menu-item-danger:hover{background:#ffebee}.user-menu-divider{height:1px;margin:.35rem 0;background:var(--border)}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.app-shell-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:nowrap;padding:.65rem 1rem;background:var(--card);border-bottom:1px solid var(--border);box-shadow:0 2px 8px #0000000f;position:sticky;top:0;z-index:20}.app-shell-header-left{display:flex;align-items:center;gap:.5rem}.app-shell-sidebar-toggle{border:none;background:none;padding:.45rem .55rem;cursor:pointer;color:var(--text);font-size:1.25rem;line-height:1;border-radius:6px}.app-shell-sidebar-toggle:hover{background:var(--bg)}.app-shell-title{margin:0;font-size:1.05rem;font-weight:600;flex:1 1 0;min-width:0;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell-header-right{display:flex;align-items:center;gap:.5rem}.app-shell-header-right .user-menu{margin-left:0}.app-shell-body{display:flex;flex:1;align-items:stretch;min-height:0;width:100%}.app-shell-sidebar{width:250px;flex-shrink:0;background:var(--card);border-right:1px solid var(--border);padding:1rem 0;display:flex;flex-direction:column;gap:.125rem;overflow:hidden;white-space:nowrap;transition:width .25s ease}.app-shell-main{flex:1;min-width:0;padding:1rem 1.25rem 2rem}.app-shell-nav-item{display:block;padding:.7rem 1.25rem;color:var(--text-muted);text-decoration:none;transition:background .2s,color .2s;border-left:3px solid transparent}.app-shell-nav-item:hover{background:var(--bg);color:var(--primary)}.app-shell-nav-item.active{background:var(--primary-soft);color:var(--primary);border-left-color:var(--primary);font-weight:600}.app-shell-collapsed .app-shell-sidebar{width:60px;padding-left:0;padding-right:0}.app-shell-collapsed .app-shell-nav-item{padding:.75rem;text-align:center;position:relative}.app-shell-collapsed .app-shell-nav-item span{display:none}.app-shell-collapsed .app-shell-nav-item:before{content:attr(data-icon);font-size:1.2rem;line-height:1}.app-shell-collapsed .app-shell-nav-item[title]:after{content:attr(title);position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:.5rem;padding:.4rem .65rem;background:var(--card);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #0000001f;font-size:.85rem;font-weight:500;color:var(--text);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:50}.app-shell-collapsed .app-shell-nav-item:hover:after{opacity:1}.nav-item-row{display:flex;align-items:stretch}.nav-item-row .app-shell-nav-item{flex:1;min-width:0}.nav-sub-chevron{flex-shrink:0;padding:0 .75rem;background:none;border:none;border-left:1px solid var(--border);color:var(--text-muted);cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.nav-sub-chevron:hover{background:var(--bg);color:var(--primary)}.app-shell-collapsed .nav-item-row{display:block}.app-shell-collapsed .nav-sub-chevron{display:none}.nav-sub-group{display:flex;flex-direction:column;gap:.1rem;margin:.1rem .5rem .25rem 1.5rem;padding:.1rem 0 .1rem .75rem;border-left:2px solid var(--border)}.nav-sub-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;color:var(--text-muted);text-decoration:none;font-size:.9rem;border-radius:6px;transition:background .15s,color .15s;background:none;border:none;width:100%;text-align:left;cursor:default}a.nav-sub-item{cursor:pointer}a.nav-sub-item:hover{background:var(--bg);color:var(--primary)}a.nav-sub-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.nav-sub-icon{font-size:.9rem;flex-shrink:0;width:1.2rem;text-align:center}.nav-view-as{flex-direction:column;align-items:flex-start;gap:.35rem;padding-top:.4rem;padding-bottom:.4rem}.nav-view-as-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.nav-role-pills{display:flex;gap:.3rem;flex-wrap:wrap}.nav-role-pill{padding:.2rem .55rem;min-height:28px;border:1px solid var(--border);border-radius:99px;background:var(--card);font-size:.78rem;font-weight:500;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background .1s,color .1s,border-color .1s}.nav-role-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}.nav-role-pill:not(.active):hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.app-shell-collapsed .nav-sub-group{display:none}@media (max-width: 640px){.app-shell-title{font-size:.95rem}.app-shell-body{flex-direction:column}.app-shell-sidebar{width:100%!important;flex-direction:row;flex-wrap:wrap;padding:.5rem;border-right:none;border-bottom:1px solid var(--border)}.app-shell-collapsed .app-shell-sidebar{display:none}.app-shell-nav-item{flex:1 1 auto;min-width:44%;text-align:center;border-left:none;border-radius:8px}.app-shell-nav-item.active{border-left:none;box-shadow:inset 0 0 0 2px var(--primary)}.app-shell-collapsed .app-shell-nav-item span{display:inline;margin-left:.35rem}.app-shell-collapsed .app-shell-nav-item:before{content:none}.app-shell-collapsed .app-shell-nav-item[title]:after{display:none}.nav-sub-group{width:100%;border-left:none;margin:0;padding:.25rem .5rem;flex-direction:row;flex-wrap:wrap;gap:.25rem}a.nav-sub-item{flex:1 1 auto;min-width:44%;justify-content:center;text-align:center;border-radius:8px}.nav-view-as{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.4rem;background:var(--bg);border-radius:8px;padding:.5rem .75rem}}.gc-page{padding:2rem;max-width:960px}.gc-loading,.gc-empty{padding:2rem;text-align:center;color:var(--text-secondary, #666)}.gc-error-page{padding:2rem;color:var(--color-error, #c0392b)}.gc-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.gc-header h1{margin:0 0 .2rem;font-size:1.6rem;font-weight:700}.gc-subtitle{margin:0;color:var(--text-secondary, #666);font-size:.9rem}.gc-status-msg{padding:.6rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem;font-weight:500}.gc-status-ok{background:#ecfdf5;color:#065f46;border:1px solid #6ee7b7}.gc-status-error{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5}.gc-section{background:var(--card-bg, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;padding:1.5rem;margin-bottom:1.5rem}.gc-section h2{margin:0 0 1rem;font-size:1.1rem;font-weight:600}.gc-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.gc-section-header h2{margin:0}.gc-device-group{margin-bottom:1.5rem}.gc-device-group:last-child{margin-bottom:0}.gc-device-name{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary, #666);margin:0 0 .75rem}.gc-zone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.gc-zone-card{border:1px solid var(--border-color, #e5e7eb);border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.75rem;background:var(--surface-secondary, #f9fafb);transition:border-color .15s}.gc-zone-card:hover{border-color:#6ee7b7}.gc-zone-vineyard{border-color:#86efac;background:#f0fdf4}.gc-zone-header{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.gc-zone-name{font-weight:600;font-size:.9rem;flex:1}.gc-zone-disabled{font-size:.7rem;color:#9ca3af;background:#f3f4f6;padding:.1rem .4rem;border-radius:4px}.gc-vineyard-badge{font-size:.7rem;font-weight:600;color:#14532d;background:#bbf7d0;padding:.15rem .5rem;border-radius:12px}.gc-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .9rem;border-radius:6px;border:none;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.gc-btn:disabled{opacity:.55;cursor:not-allowed}.gc-btn-primary{background:#22c55e;color:#fff}.gc-btn-primary:hover:not(:disabled){background:#16a34a}.gc-btn-danger{background:#ef4444;color:#fff}.gc-btn-danger:hover:not(:disabled){background:#dc2626}.gc-btn-danger-sm{background:transparent;color:#ef4444;border:1px solid #ef4444;padding:.25rem .6rem;font-size:.8rem}.gc-btn-danger-sm:hover:not(:disabled){background:#fef2f2}.gc-btn-ghost{background:transparent;color:var(--text-secondary, #555);border:1px solid var(--border-color, #d1d5db)}.gc-btn-ghost:hover:not(:disabled){background:var(--surface-secondary, #f3f4f6)}.gc-btn-sm{padding:.3rem .7rem;font-size:.8rem}.gc-schedule-list{display:flex;flex-direction:column;gap:.75rem}.gc-schedule-row{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;background:var(--surface-secondary, #f9fafb);flex-wrap:wrap}.gc-schedule-vineyard{border-color:#86efac;background:#f0fdf4}.gc-schedule-main{display:flex;align-items:center;gap:.5rem;flex:1;min-width:180px;flex-wrap:wrap}.gc-schedule-name{font-weight:600;font-size:.9rem}.gc-schedule-meta{font-size:.8rem;color:var(--text-secondary, #666)}.gc-schedule-info{display:flex;flex-direction:column;gap:.15rem;font-size:.8rem;color:var(--text-secondary, #666);min-width:160px}.gc-schedule-next{font-weight:500;color:#047857}.gc-schedule-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.gc-toggle{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.gc-toggle input{opacity:0;width:0;height:0}.gc-toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#d1d5db;border-radius:22px;transition:background .2s}.gc-toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}.gc-toggle input:checked+.gc-toggle-slider{background:#22c55e}.gc-toggle input:checked+.gc-toggle-slider:before{transform:translate(18px)}.gc-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.gc-modal{background:var(--card-bg, #fff);border-radius:12px;padding:1.75rem;width:min(420px,90vw);box-shadow:0 20px 60px #0003}.gc-modal h3{margin:0 0 .25rem;font-size:1.1rem;font-weight:700}.gc-modal-subtitle{margin:0 0 1.25rem;color:var(--text-secondary, #666);font-size:.875rem}.gc-duration-presets{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.gc-preset-btn{padding:.4rem .85rem;border-radius:20px;border:1.5px solid var(--border-color, #d1d5db);background:transparent;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s;color:var(--text-primary, #111)}.gc-preset-btn:hover{border-color:#22c55e;color:#16a34a}.gc-preset-btn.active{background:#22c55e;border-color:#22c55e;color:#fff}.gc-preset-vineyard{border-color:#86efac;color:#166534}.gc-preset-vineyard.active{background:#16a34a}.gc-custom-duration{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.gc-modal-actions{display:flex;gap:.75rem;margin-top:1.25rem}.gc-form-card{background:var(--surface-secondary, #f9fafb);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;padding:1.25rem;margin-bottom:1rem}.gc-schedule-form h3{margin:0 0 1rem;font-size:1rem;font-weight:600}.gc-error{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;padding:.5rem .75rem;font-size:.85rem;margin-bottom:.75rem}.gc-form-row{margin-bottom:.875rem}.gc-label{display:block;font-size:.8rem;font-weight:600;color:var(--text-secondary, #555);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.04em}.gc-label-optional{font-weight:400;text-transform:none;letter-spacing:0}.gc-input,.gc-select{width:100%;padding:.4rem .65rem;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.9rem;background:var(--card-bg, #fff);color:var(--text-primary, #111);box-sizing:border-box}.gc-input:focus,.gc-select:focus{outline:none;border-color:#22c55e;box-shadow:0 0 0 2px #22c55e26}.gc-input-time,.gc-input-num{width:auto;min-width:100px}.gc-input-unit{font-size:.85rem;color:var(--text-secondary, #666)}.gc-duration-inline{display:flex;align-items:center;gap:.5rem}.gc-vineyard-hint{display:block;font-size:.78rem;color:#047857;margin-top:.25rem}.gc-form-actions{display:flex;gap:.75rem;margin-top:1rem}@media (max-width: 640px){.gc-page{padding:1rem}.gc-header{flex-direction:column;align-items:stretch}.gc-zone-grid{grid-template-columns:1fr 1fr}.gc-schedule-row{flex-direction:column;align-items:flex-start}.gc-schedule-actions{margin-left:0}}.gc-ha-header-actions{display:flex;gap:8px;align-items:center}.gc-ha-card-on{border-color:#4ade80;background:#f0fdf4}.gc-ha-brightness{font-size:.75rem;color:#6b7280;background:#f3f4f6;padding:1px 6px;border-radius:10px}.gc-ha-state-label{font-size:.8rem;color:#9ca3af;min-width:24px;text-align:center}.gc-ha-state-on{color:#16a34a;font-weight:600}.gc-ha-mode-badge{font-size:.7rem;background:#e0f2fe;color:#0369a1;padding:1px 8px;border-radius:10px;text-transform:capitalize}.gc-ha-temps{display:flex;gap:6px;align-items:baseline;margin-top:8px}.gc-ha-temp-current{font-size:1.5rem;font-weight:600;color:#111827}.gc-ha-temp-set{font-size:.85rem;color:#6b7280}.gc-tabs{display:flex;gap:0;border-bottom:2px solid #e5e7eb;margin-bottom:24px}.gc-tab{padding:10px 24px;font-size:.95rem;font-weight:500;color:#6b7280;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.gc-tab:hover{color:#111827}.gc-tab-active{color:#111827;border-bottom-color:#111827}.gc-tab-sub{font-size:.8rem;font-weight:400;color:inherit;opacity:.7}.gc-tab-active .gc-tab-sub{opacity:.6}.gc-kin-title-sub{font-size:.85rem;font-weight:400;color:#6b7280}.recipes-layout{max-width:1100px;margin:0;padding:0 0 2rem}.recipes-layout-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600}.recipes-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem;margin:0 0 1.25rem}.recipes-tabs a{padding:.5rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-size:.9rem;cursor:pointer;text-decoration:none}.recipes-tabs a:hover{border-color:var(--primary-soft)}.recipes-tabs a.active{background:var(--primary);color:#fff;border-color:var(--primary)}.recipes-table{width:100%;border-collapse:collapse;font-size:.875rem}.recipes-table th,.recipes-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.recipes-table th{font-weight:600;background:var(--card);position:sticky;top:0;z-index:1}.recipes-table tr:hover td{background:var(--hover, rgba(0,0,0,.03))}.recipes-toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:1rem}.recipes-toolbar input[type=text],.recipes-toolbar select{padding:.4rem .6rem;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);font-size:.875rem}.recipes-toolbar input[type=text]{min-width:200px}.btn-primary{padding:.4rem .85rem;background:var(--primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem}.btn-primary:hover{opacity:.88}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:.25rem .55rem;font-size:.8rem;border-radius:5px;cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--text)}.btn-sm:hover{border-color:var(--primary-soft)}.btn-danger{color:#c62828;border-color:#c62828}.btn-danger:hover{background:#c62828;color:#fff}.btn-link{background:none;border:none;padding:0;color:var(--accent, #2a7);cursor:pointer;font-size:inherit;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{opacity:.75}.badge{display:inline-block;padding:.15rem .5rem;border-radius:20px;font-size:.75rem;font-weight:600}.badge-active{background:#e8f5e9;color:#2e7d32}.badge-seasonal{background:#fff3e0;color:#e65100}.badge-retired{background:#f5f5f5;color:#757575}.badge-pending{background:#e3f2fd;color:#1565c0}.badge-linked{background:#f3e5f5;color:#6a1b9a}.badge-ignored{background:#f5f5f5;color:#9e9e9e}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.recipe-card{border:1px solid var(--border);border-radius:10px;background:var(--card);overflow:hidden;cursor:pointer;transition:box-shadow .15s}.recipe-card:hover{box-shadow:0 3px 12px #0000001a}.recipe-card-photo{width:100%;height:160px;object-fit:cover;display:block;background:var(--border)}.recipe-card-no-photo{width:100%;height:160px;display:flex;align-items:center;justify-content:center;background:var(--border);font-size:2.5rem;color:var(--text-muted, #aaa)}.recipe-card-body{padding:.85rem 1rem}.recipe-card-name{font-weight:600;font-size:1rem;margin:0 0 .3rem}.recipe-card-meta{font-size:.8rem;color:var(--text-muted, #888);display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.recipe-category-header{font-size:1.1rem;font-weight:600;margin:1.5rem 0 .75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #888);font-size:.8rem}.recipe-category-header:first-child{margin-top:0}.recipe-detail{max-width:760px}.recipe-detail-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.recipe-detail-header h2{margin:0;font-size:1.2rem}.recipe-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.recipe-form-full{grid-column:1 / -1}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.8rem;font-weight:600;color:var(--text-muted, #888);text-transform:uppercase;letter-spacing:.04em}.form-group input,.form-group select,.form-group textarea{padding:.5rem .65rem;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);font-size:.9rem;font-family:inherit}.form-group textarea{min-height:120px;resize:vertical}.photo-upload-area{border:2px dashed var(--border);border-radius:8px;padding:1.5rem;text-align:center;cursor:pointer;transition:border-color .15s}.photo-upload-area:hover{border-color:var(--primary)}.recipe-photo-preview{width:100%;max-height:220px;object-fit:cover;border-radius:8px;margin-bottom:.75rem;display:block}.ingredient-line{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--border)}.ingredient-line:last-child{border-bottom:none}.ingredient-line-name{flex:1;font-size:.9rem}.ingredient-line input[type=number],.ingredient-line input[type=text],.ingredient-line select{padding:.3rem .5rem;border:1px solid var(--border);border-radius:5px;background:var(--card);color:var(--text);font-size:.85rem}.ingredient-line input[type=number]{width:80px}.cogs-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.75rem}.cogs-table th,.cogs-table td{padding:.4rem .6rem;text-align:right;border-bottom:1px solid var(--border)}.cogs-table th{font-weight:600;text-align:left}.cogs-table td:first-child{text-align:left}.cogs-total{font-weight:700;font-size:1rem;text-align:right;margin-top:.5rem;padding-top:.5rem;border-top:2px solid var(--border)}.ingredient-panel{border:1px solid var(--border);border-radius:10px;padding:1rem;margin-bottom:1rem;background:var(--card)}.ingredient-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.ingredient-panel-header h3{margin:0;font-size:1rem}.source-row{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;font-size:.85rem;border-bottom:1px solid var(--border)}.source-row:last-child{border-bottom:none}.source-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg, #fff);border-radius:12px;padding:1.5rem;width:min(520px,95vw);max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.modal h3{margin:0 0 1rem;font-size:1.1rem}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted, #888)}.empty-state p{margin:.5rem 0 0;font-size:.9rem}.inline-edit-input{padding:.25rem .4rem;border:1px solid var(--primary);border-radius:4px;font-size:.85rem;width:100%;background:var(--card);color:var(--text)}.location-checkboxes{display:flex;flex-wrap:wrap;gap:.75rem}.location-checkboxes label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;cursor:pointer}.recipes-error{color:#c62828;margin-bottom:.75rem;font-size:.875rem}.recipes-success{color:#2e7d32;margin-bottom:.75rem;font-size:.875rem}.ingredient-picker{display:flex;gap:.5rem;align-items:center;margin-top:.75rem}.ingredient-picker select{flex:1;padding:.4rem .6rem;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);font-size:.875rem}.catalog-bulk-bar{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;background:var(--hover, rgba(0,0,0,.04));border:1px solid var(--border);border-radius:6px;margin-bottom:.75rem;font-size:.875rem}.catalog-unit-select{padding:.15rem .3rem;font-size:.8rem;border:1px solid var(--border);border-radius:4px;background:var(--card);color:var(--text)}@media (max-width: 640px){.recipe-form-grid,.recipes-grid{grid-template-columns:1fr}}.inv-page{padding:.75rem;max-width:600px;margin:0 auto}.inv-loading{padding:2rem;text-align:center;color:#666}.inv-error{background:#fdecea;color:#c62828;padding:.6rem 1rem;border-radius:6px;margin-bottom:1rem}.inv-empty{text-align:center;padding:3rem 1rem;color:#666}.inv-location-bar{display:flex;gap:.5rem;margin-bottom:1rem}.inv-loc-btn{flex:1;padding:.6rem;border:2px solid #e0e0e0;border-radius:8px;background:#fff;font-size:.95rem;cursor:pointer;font-weight:500}.inv-loc-btn.active{border-color:#1976d2;background:#e3f2fd;color:#1565c0}.inv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.inv-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#fff;border:1px solid #e0e0e0;border-radius:10px;cursor:grab}.inv-item.needs-reorder{border-color:#f44336;background:#fff8f8}.inv-item.drag-over{border-color:#1976d2;background:#e3f2fd;opacity:.8}.inv-drag-handle{color:#bbb;font-size:1.2rem;cursor:grab;flex-shrink:0}.inv-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.inv-item-name{font-weight:600;font-size:1rem}.inv-item-cat{font-size:.75rem;color:#888}.inv-item-par{font-size:.8rem;color:#555}.inv-need-badge{color:#f44336;font-weight:600}.inv-last-count{font-size:.75rem;color:#aaa}.inv-count-btn{min-width:64px;height:56px;border-radius:10px;border:2px solid #1976d2;background:#fff;color:#1976d2;font-size:1.4rem;font-weight:700;cursor:pointer;flex-shrink:0}.inv-count-btn.low{border-color:#f44336;color:#f44336}.inv-count-btn:active{background:#e3f2fd}.inv-numpad-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:1000}.inv-numpad{background:#fff;border-radius:20px 20px 0 0;padding:1.25rem 1rem 2rem;width:100%;max-width:400px}.inv-numpad-title{font-weight:600;font-size:1rem;margin-bottom:.5rem;text-align:center;color:#333}.inv-numpad-display{font-size:2.5rem;font-weight:700;text-align:center;padding:.5rem;background:#f5f5f5;border-radius:8px;margin-bottom:1rem}.inv-numpad-unit{font-size:1rem;font-weight:400;color:#888}.inv-numpad-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem}.inv-key{height:64px;border:none;border-radius:10px;background:#f0f0f0;font-size:1.5rem;font-weight:500;cursor:pointer}.inv-key:active{background:#e0e0e0}.inv-key.del{background:#fce4ec;color:#c62828}.inv-numpad-actions{display:flex;gap:.5rem}.inv-key-cancel{flex:1;height:56px;border:none;border-radius:10px;background:#f5f5f5;font-size:1.1rem;cursor:pointer}.inv-key-save{flex:2;height:56px;border:none;border-radius:10px;background:#1976d2;color:#fff;font-size:1.1rem;font-weight:600;cursor:pointer}.inv-key-save:active{background:#1565c0}.scan-page{max-width:720px}.scan-sub{font-size:.9rem;color:var(--text-muted, #666);margin:0 0 1.25rem;line-height:1.5}.scan-error{color:#c62828;font-size:.875rem;margin:0 0 1rem}.scan-file-input{display:none}.scan-upload-label{display:flex;align-items:center;justify-content:center;gap:.5rem;height:90px;border:2px dashed #b0bec5;border-radius:8px;cursor:pointer;font-size:.95rem;color:#546e7a;transition:border-color .15s,background .15s;margin-bottom:1rem;text-align:center;padding:0 1rem}.scan-upload-label:hover:not(.uploading){border-color:#1976d2;background:#f0f7ff;color:#1565c0}.scan-upload-label.uploading{border-color:#90a4ae;color:#90a4ae;cursor:default}.scan-upload-results{margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.4rem}.scan-upload-result{display:flex;align-items:center;gap:.75rem;font-size:.85rem;padding:.4rem .75rem;border-radius:5px}.scan-upload-result.ok{background:#e8f5e9;color:#2e7d32}.scan-upload-result.skipped{background:#fff8e1;color:#e65100}.scan-upload-result.error{background:#ffebee;color:#c62828}.scan-result-file{font-weight:500;flex-shrink:0}.qb-section-header{margin:1.75rem 0 .5rem}.qb-btn-toggle{background:none;border:none;padding:0;color:#555;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.4rem}.qb-btn-toggle:hover{color:#1565c0}.qb-qbo-import-panel{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.qbo-import-controls{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.qbo-import-vendor-select{flex:1;min-width:180px;padding:.4rem .6rem;border:1px solid #ccc;border-radius:6px;font-size:.9rem}.qbo-import-date{padding:.4rem .6rem;border:1px solid #ccc;border-radius:6px;font-size:.9rem}.qbo-import-empty{color:#666;font-size:.9rem;margin:.5rem 0}.qbo-import-table{width:100%;border-collapse:collapse;font-size:.88rem;margin-bottom:.5rem}.qbo-import-table th{text-align:left;padding:.4rem .6rem;border-bottom:2px solid #e0e0e0;font-weight:600;color:#444}.qbo-import-table td{padding:.4rem .6rem;border-bottom:1px solid #f0f0f0}.qbo-row-imported{opacity:.55}.qbo-badge-imported{font-size:.75rem;background:#e8f5e9;color:#2e7d32;padding:.1rem .5rem;border-radius:10px}.qbo-memo{color:#888;font-size:.82rem}.qb-btn-sync{background:#1976d2;color:#fff;border:none;border-radius:6px;padding:.5rem 1.25rem;font-size:.9rem;cursor:pointer;font-weight:500}.qb-btn-sync:hover:not(:disabled){background:#1565c0}.qb-btn-sync:disabled{opacity:.6;cursor:not-allowed}.qb-btn-ai-categorize{background:#5c35c9;color:#fff;border:none;border-radius:6px;padding:.35rem .9rem;font-size:.83rem;cursor:pointer;font-weight:500}.qb-btn-ai-categorize:hover:not(:disabled){background:#4527a0}.qb-btn-ai-categorize:disabled{opacity:.6;cursor:not-allowed}:root{--bg: #f5f5f0;--card: #fff;--card-done: #e8f5e9;--primary: #0d47a1;--primary-soft: #90caf9;--text: #1c1a1a;--text-muted: #666;--border: #e0e0e0;--radius: 16px;--touch: 48px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}@media (pointer: coarse){button,[role=button],.toggle{min-height:var(--touch);min-width:var(--touch)}}
