:root { font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:#18302d; background:#f7faf9; font-synthesis:none; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; }
[hidden] { display:none!important; }
body.drawer-open { overflow:hidden; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
.site-shell { min-height:100vh; display:flex; flex-direction:column; }
.topbar { height:76px; border-bottom:1px solid #e1e9e6; background:#fff; display:flex; align-items:center; justify-content:space-between; padding:0 max(24px,calc((100vw - 1120px)/2)); }
.list-topbar { padding:0 max(24px,calc((100vw - 1120px)/2)); }
.brand { display:inline-flex; align-items:center; gap:11px; color:#123d38; text-decoration:none; font-weight:800; font-size:21px; letter-spacing:-.045em; }
.brand-mark { width:35px; height:35px; border-radius:10px; background:#123d38; color:white; display:grid; place-items:center; font-size:21px; position:relative; }
.brand-mark:after { content:""; width:7px; height:7px; border-radius:50%; background:#43c3a5; position:absolute; bottom:5px; right:5px; }
.header-note { font-size:13px; color:#637973; }
.header-link { color:#176b59; font-size:14px; font-weight:700; text-decoration:none; }
.header-link:hover { text-decoration:underline; }
.header-nav { display:flex; align-items:center; gap:22px; }
.profile-menu { position:relative; display:flex; align-items:center; }
.profile-avatar { width:38px; height:38px; border:0; border-radius:50%; background:#123d38; color:#fff; display:grid; place-items:center; font-size:13px; font-weight:800; letter-spacing:.02em; }
.profile-avatar:hover { background:#176b59; }
.profile-avatar:focus-visible,.profile-options a:focus-visible,.profile-options button:focus-visible { outline:3px solid #51bca5; outline-offset:3px; }
.profile-options { position:absolute; z-index:20; top:calc(100% + 12px); right:0; width:238px; padding:7px; border:1px solid #dae5e1; border-radius:12px; background:#fff; box-shadow:0 12px 32px rgba(18,61,56,.14); }
.profile-identity { display:flex; flex-direction:column; gap:3px; padding:10px 11px 12px; border-bottom:1px solid #e1e9e6; margin-bottom:5px; overflow-wrap:anywhere; }
.profile-identity strong { font-size:13px; }
.profile-identity span { color:#637872; font-size:12px; }
.profile-options a,.profile-options button { display:block; width:100%; padding:10px 11px; border:0; border-radius:7px; background:transparent; color:#18302d; text-decoration:none; text-align:left; font-size:14px; font-weight:650; }
.profile-options a:hover,.profile-options button:hover { background:#edf7f3; }
.profile-options button:disabled { opacity:.6; cursor:wait; }
#profile-error { margin:6px 10px; color:#a5493b; font-size:12px; }
.account-details { margin:18px 0 20px; }
.account-details div { display:grid; grid-template-columns:130px minmax(0,1fr); gap:12px; padding:12px 0; border-bottom:1px solid #e1e9e6; }
.account-details dt { color:#637872; font-size:13px; }
.account-details dd { margin:0; font-size:14px; font-weight:700; overflow-wrap:anywhere; }
.account-main { width:min(100% - 40px, 530px); padding-top:56px; }
.account-main h1 { font-size:clamp(34px,5vw,46px); }
.account-main .eyebrow { margin-top:28px; }
.account-intro { color:#5b706b; line-height:1.6; margin:16px 0 26px; }
.account-card { padding:28px; background:#fff; border:1px solid #dae5e1; border-radius:17px; box-shadow:0 9px 35px rgba(18,61,56,.045); }
.account-card h2 { font-size:20px; margin:0 0 9px; overflow-wrap:anywhere; }
.account-card > p { color:#637872; }
.account-tabs { display:flex; gap:20px; border-bottom:1px solid #dae5e1; margin-bottom:23px; }
.account-tabs button { padding:0 0 12px; background:none; border:0; border-bottom:2px solid transparent; font-weight:700; color:#657c74; }
.account-tabs button.active { color:#145c4f; border-bottom-color:#188a72; }
.account-card label { margin:0 0 17px; }
.account-card input { display:block; width:100%; margin-top:7px; font-size:15px; height:46px; text-transform:none; }
.primary-button { display:inline-flex; align-items:center; justify-content:center; min-height:45px; padding:0 20px; border:0; border-radius:9px; background:#123d38; color:#fff; text-decoration:none; font-weight:700; }
.primary-button:hover { background:#1a5a50; }
.primary-button:disabled { opacity:.65; }
.account-card form > .primary-button { width:100%; margin-top:4px; }
.account-message { min-height:18px; color:#a5493b!important; font-size:13px; }
.form-hint { color:#768a82; font-size:12px; margin:5px 0 14px; }
.account-divider { display:flex; align-items:center; gap:12px; color:#84968d; font-size:12px; margin:16px 0; }
.account-divider:before,.account-divider:after { content:""; flex:1; height:1px; background:#dae5e1; }
.google-button { display:flex; align-items:center; justify-content:center; gap:10px; min-height:45px; border:1px solid #bfceca; border-radius:9px; text-decoration:none; color:#173d36; font-weight:700; }
.google-button:hover { background:#f4f9f6; }
.google-button[aria-disabled="true"] { opacity:.55; cursor:not-allowed; }
.google-g { font-size:19px; font-weight:800; color:#4285f4; }
.account-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:22px 0; }
.legacy-import { border-top:1px solid #e1e9e6; padding-top:20px; }
.legacy-import h3 { font-size:15px; margin:0 0 7px; }
.legacy-import p { color:#667b73; font-size:13px; line-height:1.5; }
.legacy-import form { display:flex; align-items:end; gap:10px; }
.legacy-import label { flex:1; margin:0; font-size:13px; }
.legacy-import .outline-button { height:46px; white-space:nowrap; }
.legacy-import code { overflow-wrap:anywhere; }
main { width:min(100% - 40px, 880px); margin:0 auto; flex:1; padding:62px 0 80px; }
.page-intro { max-width:620px; }
.eyebrow { color:#1b8c73; font-size:13px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; margin:0 0 14px; }
h1 { margin:0; font-size:clamp(34px,5vw,54px); letter-spacing:-.055em; line-height:1.1; color:#113b36; }
.page-intro > p:last-child { font-size:16px; line-height:1.6; color:#5b706b; margin:16px 0 30px; }
.search-card { padding:28px; background:#fff; border:1px solid #dae5e1; border-radius:17px; box-shadow:0 9px 35px rgba(18,61,56,.045); }
label { font-weight:700; font-size:15px; display:block; margin-bottom:11px; }
.search-row { display:flex; gap:10px; }
input { flex:1; min-width:0; border:1px solid #bfceca; border-radius:9px; height:52px; padding:0 16px; font-size:17px; color:#173d36; outline:none; text-transform:uppercase; }
input::placeholder { color:#9baaa6; text-transform:none; }
input:focus { border-color:#188a72; box-shadow:0 0 0 3px #d6f0e8; }
button[type=submit] { border:0; border-radius:9px; background:#123d38; color:#fff; padding:0 23px; font-weight:700; white-space:nowrap; }
button[type=submit]:hover { background:#1a5a50; }
button[type=submit]:disabled { opacity:.65; cursor:wait; }
button[type=submit] span { margin-left:13px; }
.search-hint { color:#748682; margin:12px 0 0; font-size:13px; }
.result { margin-top:28px; }
.result:empty { display:none; }
.notice,.panel { background:white; border:1px solid #dae5e1; border-radius:16px; }
.notice { padding:28px; display:flex; gap:17px; align-items:flex-start; }
.notice-symbol { flex:none; width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:#eaf6f2; color:#14735e; font-size:24px; font-weight:700; }
.notice h2 { font-size:19px; margin:0 0 7px; letter-spacing:-.025em; }
.notice p { margin:0; color:#61736f; line-height:1.55; font-size:15px; }
.notice a,.result-heading a { display:inline-block; color:#116b57; text-decoration:underline; text-underline-offset:3px; margin-top:13px; font-size:14px; font-weight:650; }
.result-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin:34px 0 17px; }
.result-heading .overline { color:#6f817c; text-transform:uppercase; letter-spacing:.09em; font-size:12px; font-weight:750; margin:0 0 7px; }
.result-heading h2 { margin:0; font-size:28px; letter-spacing:-.045em; }
.result-heading p { color:#637872; margin:7px 0 0; font-size:14px; }
.result-heading a { margin-top:0; white-space:nowrap; }
.card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.panel { padding:23px; }
.panel-wide { grid-column:1/-1; }
.card-title { font-size:13px; font-weight:750; text-transform:uppercase; letter-spacing:.07em; color:#6e817b; margin:0 0 18px; }
.status-text { font-size:28px; letter-spacing:-.045em; font-weight:750; margin:0 0 11px; color:#123d38; }
.status-date { color:#627670; font-size:14px; margin:0; }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
.field-label { color:#758781; font-size:12px; margin-bottom:5px; }
.field-value { color:#1c3d37; font-size:15px; font-weight:650; overflow-wrap:anywhere; }
.timeline { list-style:none; margin:0; padding:0 0 0 3px; }
.timeline li { position:relative; padding:0 0 21px 27px; border-left:1px solid #d8e5df; margin-left:6px; }
.timeline li:last-child { padding-bottom:0; border-left-color:transparent; }
.timeline li:before { content:""; position:absolute; left:-6px; top:3px; width:11px; height:11px; background:#fff; border:2px solid #9fbab0; border-radius:50%; }
.timeline li:first-child:before { background:#159577; border-color:#159577; box-shadow:0 0 0 4px #e2f5ed; }
.event-label { font-size:15px; font-weight:650; color:#27463f; }
.event-date { color:#7b8b86; font-size:13px; margin-top:4px; }
.event-location { color:#546f67; font-size:13px; margin-top:3px; }
.source-note { color:#7a8b86; font-size:12px; margin:14px 2px 0; }
.saved-note { color:#48675e; font-size:13px; margin:17px 2px 0; }
.saved-note a { color:#116b57; font-weight:700; }
.bulk-prompt { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:34px; padding:24px 27px; border:1px solid #dae5e1; border-radius:16px; background:#eef7f3; }
.bulk-prompt h2 { font-size:19px; margin:0 0 6px; letter-spacing:-.025em; }
.bulk-prompt p { color:#5e746c; margin:0; font-size:14px; line-height:1.5; }
.secondary-link { flex:none; color:#116b57; font-weight:750; text-decoration:none; font-size:14px; }
.secondary-link:hover { text-decoration:underline; }
.search-main,.list-main { width:min(100% - 40px,1120px); }
.list-main { padding-top:45px; }
.list-heading { display:flex; align-items:end; justify-content:space-between; gap:25px; margin-bottom:28px; }
.back-link { display:inline-block; color:#176b59; font-size:13px; font-weight:700; text-decoration:none; margin-bottom:23px; }
.back-link:hover { text-decoration:underline; }
.list-heading p:last-child { color:#5b706b; line-height:1.6; margin:14px 0 0; max-width:590px; }
.outline-button,.close-button,.row-button { border:1px solid #b7cec5; background:#fff; color:#145c4f; border-radius:9px; font-weight:700; }
.outline-button { padding:12px 17px; white-space:nowrap; }
.outline-button:hover,.row-button:hover { background:#edf7f2; }
.add-card,.list-section { background:#fff; border:1px solid #dae5e1; border-radius:17px; box-shadow:0 9px 35px rgba(18,61,56,.035); }
.add-card { padding:26px; }
.add-card h2,.section-title h2 { font-size:20px; letter-spacing:-.025em; margin:0 0 6px; }
.add-card p,.section-title p { color:#72847e; font-size:14px; margin:0; line-height:1.5; }
.add-card form { margin-top:23px; }
.tag-label-row { display:flex; align-items:baseline; justify-content:space-between; }
.text-button { border:0; background:none; color:#176b59; font-size:13px; font-weight:700; padding:2px 0; }
.text-button:hover { text-decoration:underline; }
textarea { width:100%; padding:13px 15px; border:1px solid #bfceca; border-radius:9px; resize:vertical; outline:none; color:#173d36; }
textarea:focus,select:focus { border-color:#188a72; box-shadow:0 0 0 3px #d6f0e8; }
.tag-editor { display:flex; flex-wrap:wrap; align-items:center; gap:9px; min-height:74px; padding:12px; border:1px solid #bfceca; border-radius:10px; cursor:text; }
.tag-editor:focus-within { border-color:#188a72; box-shadow:0 0 0 3px #d6f0e8; }
.tag-list { display:flex; flex-wrap:wrap; gap:8px; }
.id-tag { display:inline-flex; align-items:center; gap:2px; max-width:100%; border:1px solid #b5d9cd; border-radius:8px; background:#eaf6f1; padding:2px 4px 2px 9px; }
.id-tag-warning { border-color:#e8c898; background:#fff6e8; }
.id-tag-value { flex:none; width:auto; min-width:0; max-width:260px; height:29px; border:0; box-shadow:none!important; background:transparent; padding:0; font-size:13px; font-weight:700; color:#1a5145; outline:none; text-transform:uppercase; }
.id-tag-warning .id-tag-value { color:#8e5f24; }
.id-tag-remove { flex:none; border:0; border-radius:6px; width:27px; height:27px; padding:0; background:transparent; color:#427768; font-size:20px; line-height:1; }
.id-tag-remove:hover { background:#d4ebe2; }
#tag-entry { flex:1; min-width:220px; height:34px; padding:0 4px; border:0; box-shadow:none!important; font-size:14px; text-transform:uppercase; }
#tag-entry::placeholder { text-transform:none; }
.tag-help { margin:8px 0 0!important; font-size:12px!important; }
.add-actions { display:flex; align-items:center; gap:12px; margin-top:13px; }
.file-button { display:inline-block; margin:0; border:1px solid #b7cec5; border-radius:9px; padding:12px 14px; color:#145c4f; font-size:14px; cursor:pointer; white-space:nowrap; }
.file-button:hover { background:#edf7f2; }
#upload-file { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.muted-text { color:#7b8b86; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.add-actions button { margin-left:auto; height:45px; }
.form-message { min-height:18px; margin-top:12px!important; }
.list-section,.removed-section { margin-top:24px; background:#fff; border:1px solid #dae5e1; border-radius:17px; }
.section-title { padding:25px 26px 16px; display:flex; align-items:start; justify-content:space-between; gap:20px; }
.list-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.list-actions .outline-button { padding:8px 11px; font-size:12px; }
.export-menu { position:relative; }
.export-menu summary { display:inline-flex; align-items:center; gap:8px; list-style:none; cursor:pointer; user-select:none; }
.export-menu summary::-webkit-details-marker { display:none; }
.export-chevron { display:inline-block; width:7px; height:7px; border-right:1.7px solid currentColor; border-bottom:1.7px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .15s ease; }
.export-menu[open] .export-chevron { transform:rotate(225deg) translateY(-2px); }
.export-menu[open] summary { background:#eaf6f1; }
.export-options { position:absolute; right:0; top:calc(100% + 6px); z-index:5; min-width:155px; padding:5px; border:1px solid #dae5e1; border-radius:9px; background:#fff; box-shadow:0 12px 30px rgba(18,61,56,.14); }
.export-options button { display:block; width:100%; padding:10px 12px; border:0; border-radius:6px; background:transparent; text-align:left; color:#173d36; font-size:13px; font-weight:700; white-space:nowrap; }
.export-options button:hover,.export-options button:focus-visible { background:#eaf6f1; }
.danger-button { color:#a5493b; border-color:#e5c5bd; }
.danger-button:hover { background:#fff3f0; }
.undo-banner { margin:0 26px 18px; padding:12px 15px; border-radius:9px; background:#eaf6f1; color:#225e50; display:flex; justify-content:space-between; gap:15px; font-size:13px; }
.undo-banner button { border:0; background:none; color:#0c6a55; font-weight:750; }
.removed-row { display:flex; align-items:center; justify-content:space-between; gap:15px; border-top:1px solid #e8efeb; padding:13px 26px; font-size:14px; font-weight:700; }
.removed-row small { display:block; font-weight:400; color:#71817d; margin-top:3px; }
.row-delete { color:#a5493b; border-color:#ead0c9; }
.row-delete:hover { background:#fff3f0; }
.row-actions { white-space:nowrap; }
.row-actions button + button { margin-left:6px; }
.print-heading { display:none; }
.filters { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:12px; padding:0 26px 22px; }
.filters label { margin:0; font-size:12px; color:#637872; }
.filters input,.filters select { width:100%; height:42px; padding:0 11px; font-size:14px; margin-top:7px; text-transform:none; }
.filters select { border:1px solid #bfceca; border-radius:9px; background:#fff; color:#173d36; outline:none; }
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:14px; }
th { text-align:left; padding:13px 20px; color:#71817d; font-size:12px; font-weight:750; background:#f6f9f7; white-space:nowrap; }
td { padding:15px 20px; border-top:1px solid #e8efeb; color:#3b554d; vertical-align:middle; }
td:last-child { text-align:right; }
.id-cell { font-weight:750; color:#153d35; white-space:nowrap; }
.status-pill { display:inline-block; color:#165d4e; font-weight:700; }
.row-subtle { display:block; margin-top:3px; color:#a0693f; font-size:12px; }
.row-refreshing { color:#277b66; }
.row-refreshing::before { content:""; display:inline-block; width:6px; height:6px; margin-right:5px; border-radius:50%; background:currentColor; vertical-align:2px; animation:refresh-pulse 1.2s ease-in-out infinite; }
@keyframes refresh-pulse { 50% { opacity:.3; } }
#refresh-all:disabled { cursor:wait; opacity:.72; }
.row-button { padding:7px 11px; }
.empty-list { padding:20px 26px; color:#72847e; margin:0; }
.detail-backdrop { position:fixed; inset:0; background:rgba(15,39,35,.4); z-index:20; }
.detail-drawer { position:fixed; top:0; right:0; bottom:0; width:min(540px,100vw); z-index:21; overflow-y:auto; overscroll-behavior:contain; background:#f7faf9; box-shadow:-16px 0 48px rgba(13,45,38,.17); padding:30px; }
.detail-drawer .card-grid { grid-template-columns:1fr; }
.detail-drawer .panel-wide { grid-column:auto; }
.detail-drawer .detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.detail-top { display:flex; justify-content:space-between; align-items:start; gap:20px; margin-bottom:20px; }
.detail-top h2 { margin:0; font-size:26px; letter-spacing:-.04em; overflow-wrap:anywhere; }
.detail-top p:last-child { color:#6e817b; margin:7px 0 0; font-size:14px; }
.detail-actions { display:flex; gap:8px; }
.detail-tools { display:flex; flex-wrap:wrap; gap:8px; margin:-3px 0 19px; }
.detail-tools .outline-button { padding:9px 11px; font-size:13px; }
.detail-feedback { margin:-7px 0 16px; font-size:12px; line-height:1.5; color:#176b59; overflow-wrap:anywhere; }
.close-button { font-size:25px; width:44px; height:44px; line-height:1; }
.detail-alert,.detail-empty { background:#fff; border:1px solid #dae5e1; padding:19px 23px; border-radius:13px; color:#5e746c; }
.detail-alert { color:#985e29; background:#fff8ed; border-color:#ead6b8; }
.footer { display:flex; justify-content:space-between; gap:24px; padding:25px max(24px,calc((100vw - 1020px)/2)); border-top:1px solid #e1e9e6; color:#83938d; font-size:12px; }
.footer span:first-child { font-weight:750; color:#28524b; }
@media (max-width:640px) { .topbar{height:66px;padding:0 20px}.header-note{display:none}main{width:min(100% - 32px,880px);padding:43px 0 64px}.search-card{padding:20px}.search-row{flex-direction:column}.search-row button{height:49px}.card-grid{grid-template-columns:1fr}.panel-wide{grid-column:auto}.result-heading{flex-direction:column;gap:7px}.result-heading h2{font-size:24px}.footer{padding:22px 20px;flex-direction:column;gap:5px} }
@media (max-width:720px) { .bulk-prompt,.list-heading { flex-direction:column; align-items:stretch; }.add-actions { flex-wrap:wrap; }.add-actions button { margin-left:0; width:100%; }.filters { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 18px 18px; }.section-title { padding:20px 18px 16px; }.add-card { padding:20px; }th,td { padding:12px 15px; }.detail-drawer { width:100vw; padding:22px 18px; }.detail-top { align-items:flex-start; }.detail-actions { flex:none; }.detail-actions .outline-button { padding:9px 10px; }.detail-actions .close-button { width:40px; height:40px; } }
@media (max-width:430px) { .detail-top { flex-direction:column-reverse; }.detail-actions { align-self:flex-end; }.detail-drawer .detail-grid { grid-template-columns:1fr; } }
@media (max-width:900px) { .section-title { flex-direction:column; }.list-actions { justify-content:flex-start; }.list-actions .outline-button { font-size:12px; } }
@media print { @page { size:A4 landscape; margin:14mm; } :root,body { background:#fff; color:#172f2a; } .topbar,.list-heading,.add-card,.filters,.section-title,.undo-banner,.removed-section,.detail-backdrop,.detail-drawer,.footer,.empty-list { display:none!important; } .site-shell { display:block; min-height:0; } .list-main { width:100%; max-width:none; padding:0; margin:0; } .list-section { border:0; border-radius:0; box-shadow:none; margin:0; overflow:visible; } .print-heading { display:block; margin-bottom:17px; } .print-heading h2 { margin:0 0 4px; color:#123d38; font-size:20px; } .print-heading p { margin:0; color:#64766e; font-size:10px; } .table-wrap { overflow:visible; } table { font-size:10px; width:100%; } th,td { padding:8px 7px; border-bottom:1px solid #dce7e2; } th { background:#eef5f1!important; color:#314b43; } th:last-child,td:last-child { display:none; } tr { break-inside:avoid; } .status-pill,.id-cell { color:#173d36; } }
@media print { .drawer-print { overflow:visible; } .drawer-print .site-shell { display:none!important; } .drawer-print .detail-drawer { display:block!important; position:static; width:100%; height:auto; max-height:none; overflow:visible; padding:0; box-shadow:none; background:#fff; } .drawer-print .detail-actions,.drawer-print .detail-tools,.drawer-print .detail-feedback { display:none!important; } .drawer-print .panel { break-inside:avoid; } }
