*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #ffffff;--bg-sidebar: #f3f5f7;--bg-header: #1c2b3a;--bg-input: #ffffff;--bg-modal: #ffffff;--border: #cdd2d9;--border-light: #e8ebee;--text: #1a2030;--text-dim: #58687a;--text-muted: #96a3b0;--accent: #e09820;--accent-dark: #b87a10;--accent-bg: rgba(224,152,32,.12);--link: #2558a8;--link-hover: #1a3e80;--link-active: #1a3e80;--tag-bg: #e8f0fa;--tag-text: #2558a8;--tag-border: #b8ccea;--font-serif: Georgia, "Times New Roman", serif;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-serif);font-size:16px;line-height:1.65;display:flex;flex-direction:column;height:100vh;overflow:hidden}#root{display:contents}#app{display:flex;flex-direction:column;flex:1;min-height:0;height:100%}header{flex-shrink:0;background:var(--bg-header);padding:0 1rem;height:52px;display:flex;align-items:center;gap:1rem}.header-left{display:flex;align-items:center;gap:.65rem;flex:1;min-width:0}.logo-badge{flex-shrink:0;width:34px;height:34px;background:var(--accent);border-radius:4px;display:flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-size:.65rem;font-weight:800;letter-spacing:.04em;color:#fff}.header-brand{min-width:0;display:flex;flex-direction:column;justify-content:center;line-height:1.2}.header-app-name{font-family:var(--font-ui);font-size:.68rem;color:#ffffff80;letter-spacing:.04em}.header-brand h1{font-family:var(--font-ui);font-size:.95rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-controls{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.auth-badge{font-family:var(--font-ui);font-size:.72rem;color:#7dca98;display:none;align-items:center;gap:.3rem}.auth-badge:before{content:"●";font-size:.5rem}.auth-badge.visible{display:flex}.header-search{flex:1;max-width:280px}#search-input{width:100%;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#ffffffe6;font-family:var(--font-ui);font-size:.82rem;padding:.3rem .65rem;outline:none;transition:background .15s,border-color .15s}#search-input::placeholder{color:#fff6}#search-input:focus{background:#ffffff29;border-color:#fff6}#search-input::-webkit-search-cancel-button{filter:invert(1) opacity(.5);cursor:pointer}.no-results-msg{font-family:var(--font-ui);font-size:.88rem;color:var(--text-muted);padding:3rem 0;text-align:center}.layout{display:flex;flex:1;overflow:hidden}#filter-panel{padding:.75rem .75rem .5rem}.filter-section-label{font-family:var(--font-ui);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);margin-bottom:.5rem}.filter-group{margin-bottom:.75rem}.filter-group-label{font-family:var(--font-ui);font-size:.68rem;font-weight:600;color:var(--text-dim);margin-bottom:.35rem}.filter-toggles{display:flex;flex-wrap:wrap;gap:.3rem}.filter-toggle{font-family:var(--font-ui);font-size:.68rem;padding:.15rem .45rem;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;transition:background .12s,color .12s,border-color .12s;white-space:nowrap}.filter-toggle:hover{border-color:var(--link);color:var(--link)}.filter-toggle.on{background:var(--tag-bg);color:var(--tag-text);border-color:var(--tag-border);font-weight:600}.filter-toggle.on.status-not-yet-assessed{background:#f5f5f5;color:#606060;border-color:#c8c8c8}.filter-toggle.on.status-applicable{background:#e8f5ec;color:#2a7a48;border-color:#a8d8bc}.filter-toggle.on.status-applicable-but-ignored{background:#e8f0fa;color:#2558a8;border-color:#a8c0e0}.filter-toggle.on.status-not-applicable{background:#faeaea;color:#9a3030;border-color:#e0a8a8}.filter-toggle.on.status-rescinded{background:#faf0e0;color:#8a5810;border-color:#e0c880}.filter-toggle.on.status-fulfilled{background:#f0f5e8;color:#4a7820;border-color:#b8d890}.btn-clear-filters{margin-top:.25rem;background:none;border:none;padding:0;font-family:var(--font-ui);font-size:.72rem;color:var(--link);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.btn-clear-filters:hover{color:var(--link-hover)}.sidebar-divider{height:1px;background:var(--border-light);margin:.25rem 0}#sidebar{width:220px;flex-shrink:0;background:var(--bg-sidebar);border-left:1px solid var(--border);overflow-y:auto;padding:.75rem 0 1.5rem}.sidebar-section-label{font-family:var(--font-ui);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);padding:.25rem 1rem .6rem}.sidebar-link{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem;padding:.3rem 1rem;font-family:var(--font-ui);font-size:.8rem;color:var(--text-dim);text-decoration:none;border-right:2px solid transparent;transition:color .12s,background .12s,border-color .12s;line-height:1.3}.sidebar-link:hover{color:var(--link);background:#2558a80f}.sidebar-link.active{color:var(--link-active);border-right-color:var(--link-active);background:#2558a814;font-weight:600}.sidebar-count{font-size:.68rem;color:var(--text-muted);flex-shrink:0}#content{flex:1;overflow-y:auto;padding:1.5rem 2rem}.loading-msg{font-family:var(--font-ui);font-size:.9rem;color:var(--text-muted);padding:4rem 0;text-align:center}.date-group{margin-bottom:2.25rem;scroll-margin-top:1rem}.date-heading{font-family:var(--font-ui);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--bg-header);padding-bottom:.4rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.resolution-card{padding:.7rem 0;border-bottom:1px solid var(--border-light)}.resolution-card:last-child{border-bottom:none}.card-header{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-bottom:.4rem}.res-number{font-family:var(--font-ui);font-size:.72rem;font-weight:700;color:var(--bg-header)}.status-badge{font-family:var(--font-ui);font-size:.65rem;font-weight:600;border-radius:3px;padding:.1rem .4rem;border:1px solid;white-space:nowrap;text-transform:lowercase}.status-badge.not-yet-assessed{background:#f5f5f5;color:#606060;border-color:#c8c8c8}.status-badge.applicable{background:#e8f5ec;color:#2a7a48;border-color:#a8d8bc}.status-badge.applicable-but-ignored{background:#e8f0fa;color:#2558a8;border-color:#a8c0e0}.status-badge.not-applicable{background:#faeaea;color:#9a3030;border-color:#e0a8a8}.status-badge.rescinded{background:#faf0e0;color:#8a5810;border-color:#e0c880}.status-badge.fulfilled{background:#f0f5e8;color:#4a7820;border-color:#b8d890}.header-admin-controls,.header-status-tags{display:flex;align-items:center;gap:.4rem;margin-left:auto}.tags-row{display:flex;flex-wrap:wrap;gap:.25rem;margin-left:auto}.tags-row-edit{gap:.3rem;align-items:center}.tag-chip{font-family:var(--font-ui);font-size:.62rem;padding:.08rem .38rem;border-radius:10px;background:var(--tag-bg);color:var(--tag-text);border:1px solid var(--tag-border)}.res-text{font-family:var(--font-serif);font-size:.97rem;line-height:1.72;color:var(--text);cursor:pointer}.res-notes{font-family:var(--font-ui);font-size:.8rem;color:var(--text-muted);line-height:1.55;margin-top:.6rem;padding:.4rem .6rem;border-left:2px solid var(--border)}.res-notes:before{content:"Note: ";font-weight:600;color:var(--text-dim)}.res-description{font-family:var(--font-serif);font-size:.9rem;font-style:italic;color:var(--text-dim);line-height:1.65;margin-top:.5rem}.card-controls{margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--border-light);display:flex;flex-direction:column;gap:.65rem}.ctrl-row{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem}.ctrl-label{font-family:var(--font-ui);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);white-space:nowrap}.status-buttons{display:flex;flex-wrap:wrap;gap:.25rem}.status-btn{font-family:var(--font-ui);font-size:.65rem;font-weight:500;padding:.1rem .4rem;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s,border-color .12s;white-space:nowrap}.status-btn:hover{border-color:var(--link);color:var(--link)}.status-btn.on.not-yet-assessed{background:#f5f5f5;color:#606060;border-color:#c8c8c8}.status-btn.on.applicable{background:#e8f5ec;color:#2a7a48;border-color:#a8d8bc}.status-btn.on.applicable-but-ignored{background:#e8f0fa;color:#2558a8;border-color:#a8c0e0}.status-btn.on.not-applicable{background:#faeaea;color:#9a3030;border-color:#e0a8a8}.status-btn.on.rescinded{background:#faf0e0;color:#8a5810;border-color:#e0c880}.status-btn.on.fulfilled{background:#f0f5e8;color:#4a7820;border-color:#b8d890}.tag-toggle{font-family:var(--font-ui);font-size:.72rem;padding:.18rem .5rem;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.tag-toggle:hover{border-color:var(--link);color:var(--link)}.tag-toggle.on{background:var(--tag-bg);color:var(--tag-text);border-color:var(--tag-border);font-weight:600}.field-label{font-family:var(--font-ui);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);display:block;margin-bottom:.3rem}.edit-textarea{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:var(--font-serif);font-size:.9rem;line-height:1.6;padding:.5rem .7rem;resize:vertical}.edit-textarea:focus{outline:2px solid var(--link);outline-offset:1px;border-color:transparent}.action-row{display:flex;justify-content:flex-end;gap:.5rem}.btn{font-family:var(--font-ui);font-size:.8rem;font-weight:500;border-radius:4px;border:1px solid;padding:.3rem .8rem;cursor:pointer;transition:background .12s,color .12s,border-color .12s;white-space:nowrap;line-height:1.4}.btn-header{background:#ffffff1a;border-color:#ffffff40;color:#ffffffd9;font-family:var(--font-ui);font-size:.78rem;font-weight:500;border-radius:4px;border:1px solid;padding:.28rem .75rem;cursor:pointer;transition:background .12s;white-space:nowrap}.btn-header:hover{background:#ffffff2e;border-color:#fff6;color:#fff}.btn-primary{background:var(--link);border-color:var(--link);color:#fff}.btn-primary:hover:not(:disabled){background:var(--link-hover);border-color:var(--link-hover)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{background:transparent;border-color:transparent;color:var(--link);padding-left:.4rem;padding-right:.4rem}.btn-ghost:hover{border-color:var(--border);background:var(--bg-sidebar)}.btn-expand{display:inline-block;margin-top:.35rem;background:none;border:none;padding:0;font-family:var(--font-ui);font-size:.75rem;color:var(--link);cursor:pointer;transition:color .12s;text-decoration:underline;text-underline-offset:2px;text-decoration-color:transparent}.btn-expand:hover{color:var(--link-hover);text-decoration-color:var(--link-hover)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c2b3a8c;display:flex;align-items:center;justify-content:center;z-index:200}.modal-box{background:var(--bg-modal);border:1px solid var(--border);border-radius:6px;padding:1.5rem;width:100%;max-width:340px;box-shadow:0 8px 40px #1c2b3a33}.modal-box h2{font-family:var(--font-ui);font-size:1rem;font-weight:600;color:var(--text);margin-bottom:1rem}.modal-error{font-family:var(--font-ui);font-size:.78rem;color:#9a3030;margin-bottom:.5rem;min-height:1rem}.form-label{font-family:var(--font-ui);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);display:block;margin-bottom:.3rem}.form-input{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:var(--font-ui);font-size:.9rem;padding:.45rem .65rem;margin-bottom:1rem}.form-input:focus{outline:2px solid var(--link);outline-offset:1px;border-color:transparent}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--bg-header);border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:.55rem 1rem;font-family:var(--font-ui);font-size:.8rem;color:#ffffffe6;box-shadow:0 4px 20px #1c2b3a40;opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity .22s,transform .22s;z-index:300;max-width:300px}.toast.visible{opacity:1;transform:translateY(0);pointer-events:auto}.toast.success{border-left:3px solid #5db87a}.toast.error{border-left:3px solid #d06060}mark{background:transparent;color:#2033c7;font-style:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
