:root{
  --bg:#e8f1f9;
  --surface:#ffffff;
  --surface-soft:#f2f7fc;
  --text:#0f2940;
  --muted:#536c7d;
  --accent:#0d6a6f;
  --accent-dark:#084e52;
  --danger:#d14343;
  --radius:20px;
  --container:1120px;
  --shadow:0 24px 60px rgba(15,41,64,0.1);
  --gold:#b8860b;
  --gold-light:#daa520;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;min-height:100vh;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(135deg, #e8f1f9 0%, #f0f5fa 50%, #eef4fb 100%);color:var(--text);}
button,input,select,textarea,a{font:inherit;}
a{color:inherit;text-decoration:none;}
.container{width:min(var(--container),calc(100% - 32px));margin:0 auto;padding:32px 0 40px;}
.home-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px;}
.landing{width:100%;max-width:700px;display:flex;flex-direction:column;gap:26px;align-items:center;text-align:center;padding:48px 36px;background:rgba(255,255,255,.95);border-radius:40px;box-shadow:0 40px 100px rgba(15,23,42,.12);border:1px solid rgba(15,23,42,.08);}
.landing h1{margin:0;font-size:clamp(2.4rem,4vw,3.6rem);line-height:1.02;letter-spacing:-.04em;}
.landing p{margin:0;color:var(--muted);font-size:1.02rem;line-height:1.75;max-width:36rem;}
.landing-copy{margin-top:16px;color:var(--muted);font-size:1.03rem;line-height:1.9;max-width:36rem;}
.choice{width:100%;display:flex;justify-content:center;}
.big-btn{width:100%;max-width:560px;display:flex;align-items:center;justify-content:center;gap:18px;padding:32px 32px;border-radius:32px;background:linear-gradient(135deg,#ffffff,#f8fdff);border:1px solid rgba(15,23,42,.08);box-shadow:0 32px 70px rgba(15,23,42,.08);transition:transform .2s ease,box-shadow .2s ease;}
.big-btn:hover{transform:translateY(-2px);box-shadow:0 36px 80px rgba(15,23,42,.14);}
.big-btn-content{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;}
.big-btn .label{font-weight:800;font-size:1.48rem;line-height:1.1;}
.big-btn .subtitle{margin:0;color:var(--muted);font-size:1rem;line-height:1.75;max-width:30rem;}
.big-btn svg{width:42px;height:42px;flex-shrink:0;}
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:28px;border-radius:28px;background:rgba(255,255,255,.92);border:1px solid rgba(15,23,42,.06);box-shadow:var(--shadow);}
.page-heading h1{margin:0;font-size:clamp(2rem,2.4vw,2.8rem);}
.page-heading p{margin:.8rem 0 0;color:var(--muted);max-width:64ch;line-height:1.75;}
.eyebrow{margin:0 0 10px;color:var(--accent-dark);text-transform:uppercase;letter-spacing:.2em;font-size:.82rem;font-weight:700;}
.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin:24px 0;}
.chart-grid.collapsed,
.chart-grid.collapsed + .chart-summary {
  display: none;
}
.stat-card{display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-height:140px;}
.stat-label{color:var(--muted);text-transform:uppercase;font-size:.82rem;letter-spacing:.12em;font-weight:700;}
.stat-value{font-size:2.4rem;color:var(--accent-dark);margin:0;line-height:1;}
.card-section{margin-top:24px;}
.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px;}
.card-header h2{margin:0;font-size:1.5rem;}
.card-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;}
.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:20px;}
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.table-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;}
.tag{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:rgba(15,157,153,.1);color:var(--accent-dark);font-size:.9rem;font-weight:700;}
.action-separator{margin:0 8px;color:rgba(15,23,42,.5);}
.inline-action-form{display:inline;margin:0;}
.action-button{font:inherit;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;}
.action-button:hover{color:var(--accent-dark);}
.actions-cell{display:flex;gap:8px;justify-content:flex-end;align-items:center;}
.button.small{padding:6px 8px;font-size:0.9rem;border-radius:10px;min-width:64px;}
.action-icon{width:14px;height:14px;display:inline-block;vertical-align:middle;margin-right:6px;opacity:0.95}

.visited-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.visited-cell .date{font-weight:700;color:#102a43}
.visited-cell .time{font-size:0.9rem;color:var(--muted)}
.button-row-right{justify-content:flex-end;}
.card{background:var(--surface);padding:26px;border-radius:26px;border:1px solid rgba(15,23,42,.06);box-shadow:var(--shadow);}
.auth-screen, .error-screen{min-height:100vh;display:flex;flex-direction:column;}
.auth-screen .container, .error-screen .container{display:block;max-width:900px;margin:0 auto;flex:1;padding:32px 16px 40px;}
.auth-page{display:grid;gap:24px;}
.login-hero{padding:28px 30px;box-shadow:var(--shadow);border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.98);border-left:6px solid var(--accent);}
.auth-card{max-width:520px;width:100%;margin:0 auto;}
.form-header{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;}
.form-header h1{margin:0;font-size:clamp(2rem,2.4vw,2.5rem);}
.header h1{margin:0;font-size:clamp(2rem,2.4vw,2.5rem);}
.notice{margin:0;color:var(--muted);font-size:0.98rem;}
.notice.error{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b;padding:14px 16px;border-radius:14px;}
.notice.success{background:#e6fffa;border:1px solid #6ee7b7;color:#0f766e;padding:14px 16px;border-radius:14px;}
.notice.info{background:#eff6ff;border:1px solid #93c5fd;color:#1d4ed8;padding:14px 16px;border-radius:14px;}
.page-header{padding:26px 28px 22px;display:flex;flex-direction:column;gap:16px;}
.lead{margin:0;color:var(--muted);font-size:1rem;line-height:1.8;max-width:60ch;}
.status-card{margin-top:24px;padding:22px;display:flex;flex-direction:column;gap:16px;}
.status-row{display:flex;align-items:flex-start;gap:16px;}
.status-indicator{width:16px;height:16px;border-radius:50%;border:2px solid var(--accent);background:rgba(15,157,153,.1);margin-top:6px;}
.status-copy h2{margin:0;font-size:1.05rem;color:var(--accent-dark);}
.status-copy p{margin:8px 0 0;}
.field-group{margin-bottom:18px;}
label{display:block;margin-bottom:8px;font-size:.96rem;color:#1f3347;font-weight:600;}
dt{font-weight:700;color:#102a43;padding:8px 0;}
dd{margin:0;color:#334155;padding:8px 0;}
.detail-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.detail-summary-grid > div{background:rgba(15,23,42,.04);padding:18px;border-radius:20px;}
.detail-summary-grid .tag{display:inline-flex;padding:8px 12px;border-radius:999px;background:rgba(15,157,153,.12);color:var(--accent-dark);font-size:.85rem;font-weight:700;letter-spacing:.01em;}
.detail-value{margin:.75rem 0 0;color:#102a43;font-size:1.05rem;line-height:1.6;}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
.detail-block{padding:16px;border-radius:20px;background:rgba(255,255,255,.95);border:1px solid rgba(15,23,42,.06);}
.detail-block.full-width{grid-column:1/-1;}
.detail-block dt{margin:0;font-size:.95rem;letter-spacing:.01em;}
.detail-block dd{margin:.5rem 0 0;color:#334155;line-height:1.8;}
.eyebrow{margin:0 0 10px;color:var(--accent);font-size:.95rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;}
.export-section{margin-bottom:28px;padding-bottom:28px;border-bottom:1px solid rgba(15,23,42,.08);}
.export-section:last-child{border-bottom:none;margin-bottom:0;}
.export-section-title{margin:0 0 16px;font-size:1.1rem;font-weight:700;color:#102a43;}
.export-options{display:flex;flex-direction:column;gap:12px;}
.export-radio-label{display:flex;align-items:flex-start;gap:14px;padding:16px;border-radius:16px;border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.95);cursor:pointer;transition:all .2s ease;}
.export-radio-label:hover{border-color:rgba(15,157,153,.3);background:rgba(15,157,153,.02);}
.export-radio-label input[type="radio"]{display:none;}
.export-radio-label input[type="radio"]:checked+.radio-box{border-color:var(--accent);background:var(--accent);}
.export-radio-label input[type="radio"]:checked~.radio-text .radio-label{color:#102a43;font-weight:700;}
.radio-box{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:2px solid #cbd5e0;flex-shrink:0;transition:all .2s ease;}
.radio-box::after{content:'✓';color:#fff;font-size:.9rem;font-weight:700;opacity:0;}
.export-radio-label input[type="radio"]:checked+.radio-box::after{opacity:1;}
.radio-text{display:flex;flex-direction:column;gap:4px;}
.radio-label{font-weight:600;color:#102a43;font-size:.95rem;}
.radio-desc{font-size:.85rem;color:var(--muted);line-height:1.4;}
.export-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
@media(max-width:980px){.detail-summary-grid,.detail-grid{grid-template-columns:1fr;}.export-date-fields{grid-template-columns:1fr;}}
input,select,textarea{width:100%;padding:14px 16px;border-radius:16px;border:1px solid rgba(15,23,42,.12);background:rgba(255,255,255,.98);color:#1f3347;transition:border-color .2s ease,box-shadow .2s ease;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,157,153,.12);}
textarea{min-height:120px;resize:vertical;}
.button-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;margin-top:10px;}
button, .button, input[type="submit"]{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);color:#fff;padding:14px 18px;border-radius:16px;cursor:pointer;font-weight:700;border:none;transition:all .2s ease;}
button:hover, .button:hover, input[type="submit"]:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(13,106,111,.2);}
button.secondary, .button.secondary{background:#fff;color:var(--accent);border:2px solid var(--accent);}
button.secondary:hover, .button.secondary:hover{background:#f0f5fa;transform:translateY(-2px);}
.form-inline{display:inline-flex;align-items:center;gap:0;margin:0;}
.form-inline button{margin:0;}
.chart-grid{display:grid;grid-template-columns:1fr;gap:20px;margin-top:20px;}
.chart-card{padding:24px;background:var(--surface);border-radius:28px;border:1px solid rgba(15,23,42,.08);box-shadow:var(--shadow);min-height:auto;}
.chart-card h3{margin:0 0 16px;font-size:1.2rem;color:var(--text);}
.chart-card p{margin:0;color:var(--muted);line-height:1.7;}
.pie-chart-card{display:grid;grid-template-columns:1fr;gap:18px;align-items:center;justify-items:center;text-align:center;}
.pie-chart{width:min(260px,100%);aspect-ratio:1 / 1;max-width:320px;border-radius:50%;border:12px solid rgba(255,255,255,.85);box-shadow:inset 0 0 0 1px rgba(15,23,42,.06);background:transparent;}
.pie-legend{display:grid;gap:10px;padding-left:0;max-width:100%;width:100%;}
.pie-legend-item{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.95rem;color:#334155;padding:10px 0;border-bottom:1px solid rgba(15,23,42,.05);}
.pie-legend-item:last-child{border-bottom:none;}
.pie-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px rgba(15,23,42,.08);}
.chart-summary{margin-top:24px;border-top:1px solid rgba(15,23,42,.08);padding-top:20px;display:grid;gap:12px;}
.chart-summary-item{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#334155;font-size:.95rem;}
.chart-summary-item strong{color:var(--accent-dark);}
.gov-header{background:linear-gradient(135deg, #0d5f67 0%, #084e52 50%, #062d33 100%);border-bottom:4px solid var(--gold);box-shadow:0 4px 16px rgba(15,41,64,.15);padding:24px 0;color:#fff;}
.gov-header-container{display:grid;grid-template-columns:auto 1fr auto;gap:32px;align-items:center;max-width:1200px;margin:0 auto;padding:0 20px;}
.gov-logo-section{display:flex;align-items:center;justify-content:center;filter:brightness(1.1);}
.gov-logo{width:100px;height:100px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);border-radius:50%;padding:8px;}
.gov-logo img{max-width:100%;max-height:100%;object-fit:contain;}
.gov-logo-link{text-decoration:none;transition:transform .3s ease,filter .3s ease;}
.gov-logo-link:hover .gov-logo{filter:brightness(1.3);}
.gov-title-section{text-align:center;}
.gov-country{font-size:1.25rem;font-weight:800;color:#fff;margin:0;letter-spacing:.08em;text-transform:uppercase;}
.gov-department{font-size:1.1rem;font-weight:700;color:#dce9f0;margin:6px 0 0;letter-spacing:.04em;}
.gov-office{font-size:1.1rem;font-weight:700;color:#dce9f0;margin:4px 0 0;letter-spacing:.04em;}
.gov-bureau{font-size:1rem;font-weight:600;color:#b8d9e8;margin:6px 0 10px;letter-spacing:.02em;}
.gov-region{font-size:.95rem;font-weight:600;color:#a8cfe0;margin:4px 0 0;letter-spacing:.01em;}
.gov-location{font-size:.95rem;font-weight:600;color:#a8cfe0;margin:4px 0 0;letter-spacing:.01em;}
.landing-header{text-align:center;margin-bottom:32px;}
.gov-info-bar{background:linear-gradient(90deg, #0d5f67 0%, #084e52 100%);color:#fff;padding:12px 0;text-align:center;font-size:.9rem;font-weight:600;letter-spacing:.02em;border-bottom:2px solid var(--gold);box-shadow:0 2px 8px rgba(15,41,64,.1);position:sticky;top:0;z-index:100;}
.gov-info-bar p{margin:0;line-height:1.4;}
body.auth-screen, body.error-screen{display:flex;flex-direction:column;min-height:100vh;}
.auth-screen .container, .error-screen .container{display:flex;align-items:center;justify-content:center;flex:1;padding:32px 16px;}
.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:20px;z-index:999;}
.modal-overlay.active{display:flex;}
.modal{width:min(900px,100%);max-height:min(95vh,1200px);overflow:auto;background:var(--surface);border-radius:28px;box-shadow:0 40px 90px rgba(15,23,42,.16);padding:30px;position:relative;}
.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px;}
.modal-header h2{margin:0;font-size:1.7rem;}
.modal-close{background:transparent;border:none;color:var(--text);font-size:2rem;line-height:1;cursor:pointer;padding:8px;}
.modal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;}
.modal-textarea{grid-column:1 / -1;}
.modal-textarea textarea{min-height:140px;}
@media(max-width:980px){.chart-grid{grid-template-columns:1fr;}.modal-grid{grid-template-columns:1fr;}.filter-grid{grid-template-columns:1fr;}.card-header{flex-direction:column;align-items:flex-start;gap:14px;}.button-row-right{justify-content:flex-start;}.table-meta{justify-content:flex-start;}}
.auth-layout{display:flex;justify-content:center;}
.auth-card{max-width:520px;width:100%;}
@media (max-width:680px){.auth-card{padding:22px 18px;}}
@media(max-width:900px){.auth-page{gap:18px;}.auth-card,.login-hero{padding:22px 20px;}}
@media(max-width:680px){dl[style*="grid-template-columns: auto 1fr"] {grid-template-columns: 1fr !important;}}table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid rgba(15,23,42,.08);border-radius:18px;overflow:hidden;}
th,td{padding:16px 18px;text-align:left;border-bottom:1px solid rgba(15,23,42,.08);}
th{background:rgba(15,157,153,.08);font-weight:700;color:#102a43;}
tbody tr:hover{background:rgba(15,157,153,.06);}
.table-caption{margin:0 0 16px;font-weight:700;color:#102a43;}
.action-link{color:var(--accent-dark);font-weight:700;}
@media(max-width:900px){.page-heading{flex-direction:column;align-items:flex-start;}.button-row{justify-content:center;}.field-group{margin-bottom:16px;}.chart-card{padding:20px;}.pie-chart-card{grid-template-columns:1fr;justify-items:center;text-align:center;}.pie-legend{padding-left:0;}.gov-header-container{grid-template-columns:1fr;gap:20px;}.gov-logo{width:80px;height:80px;}.gov-country{font-size:1.05rem;}.gov-department,.gov-office{font-size:.95rem;}.gov-bureau,.gov-region,.gov-location{font-size:.8rem;}}
@media(max-width:680px){.container{padding:24px 0 32px;}.card{padding:20px;}.form-header h1,.page-heading h1{font-size:clamp(1.75rem,5vw,2.2rem);}.big-btn{padding:24px 24px;}.big-btn .label{font-size:1.1rem;}.landing{gap:20px;}.gov-header-container{padding:0 16px;gap:16px;}.gov-logo{width:70px;height:70px;}.gov-country{font-size:1rem;}.gov-department,.gov-office{font-size:.95rem;}.gov-bureau,.gov-region,.gov-location{font-size:.8rem;}.landing-header h1{font-size:clamp(1.5rem,4vw,2rem);margin-bottom:10px;}.landing-subtitle{font-size:1rem;}}
