/* White, blue and red: restrained national accents, neutral working surfaces. */
html{--bg:#f5f6f7;--surface:#fff;--ink:#172941;--muted:#667287;--line:#e0e4eb;--soft:#f3f5f8;--blue:#0054b8;--red:#cf2439;--shadow:0 4px 18px #27344308}
body{background:#f5f6f7;padding-bottom:var(--cookie-space,0px)}
.topbar{position:relative;background:#fff;border-bottom:1px solid #e4e7ec}
.topbar:before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#fff 0 33.333%,#0050a4 33.333% 66.666%,#e52839 66.666%)}
.topbar .brand,.brand{color:#172941}
.topbar .search{background:#f5f6f8;border-color:#e5e8ed}
.subnav{background:#fff;border-bottom:1px solid #e2e5eb;box-shadow:0 3px 8px #1c314107}
.subnav a{color:#28374b}
.subnav a:nth-child(-n+4){color:#1e3960;font-weight:800}
.subnav a:hover{color:#c32438;background:#fff4f5;text-decoration:none;border-radius:5px}
.intro h1{color:#172941}.intro p{color:#6c7686}
.intro>.button{background:#fff;color:#bd283b;border-color:#ecd3d8;box-shadow:0 2px 5px #b9243508}
.workspace .panel,.stats{border:1px solid #e9ebef;box-shadow:0 3px 12px #27344307;background:#fff}
.stats>div{border-color:#e7e9ed}.stats strong{color:#1f2e43}.stats small{color:#6b788b}
.stats>div:nth-child(2) strong{color:#b72c40}
.calendar th{background:#f5f6f8;color:#4b5d76}
.calendar th:last-child{color:#c1273d;background:#fff3f4}
.calendar td.weekend{background:#f6f7f9}
.calendar td.holiday{background:#fff2f3}
.calendar td.today{background:#f1faf6}
.calendar td,.calendar th,.calendar{border-color:#e3e8ef}
.tabs{background:#f1f3f6;border-color:#e3e7ee}.tabs a{color:#4c5c72}.tabs .active{background:#0055b6;color:#fff;box-shadow:0 3px 8px #0054b81c}
.primary,input[type=submit]{background:linear-gradient(#1268c8,#004da9);border-color:#004caa;box-shadow:inset 0 1px 0 #ffffff42,0 3px 7px #004da91c;color:#fff}
.primary:hover{background:linear-gradient(#0c5fba,#00438f);color:#fff}
.right-panel #day-notes{background:#fffdf7;border-color:#e9e5d9}
.upcoming time{background:#f4f5f7;color:#3f526e}.upcoming:has(small.work-free) time{color:#c1273d;background:#fff0f2}
.category-chip{box-shadow:none}
.feature-grid>*{background:linear-gradient(115deg,#fff,#f4f6f8);border-color:#e3e7ec;box-shadow:none}
.feature-grid>*:nth-child(2){background:linear-gradient(115deg,#fff,#f2f6fc);border-color:#e0e7f0}
.feature-grid>*:nth-child(3){background:linear-gradient(115deg,#fff,#fff0f1);border-color:#f0dfe2}
.feature-grid>*:nth-child(3) h3{color:#b82b3e}
.quick-links a{background:#fff;border-color:#e1e5eb;box-shadow:0 2px 6px #27344304}
.year-cards a{background:#fff;border-color:#e0e5ed}
.year-cards a:nth-child(even) strong{color:#c52c40}
.year-links a{background:#fff;border-color:#e1e6ee}
.year-links a:hover{background:#f3f6fb;color:#0054b8}
.story-copy h1 em{color:#c52c40}
.story-paper{background:linear-gradient(115deg,#fff,#faf8f5)}
.story-paper>strong span{color:#cf3347}
.story-values{border-color:#e1e4e9}
.story-links>a{border-color:#e2e5ea}
.legal-hero{background:linear-gradient(120deg,#fff 35%,#f1f4f8);border-color:#e0e5ed}
.legal-content,.legal-content.standalone{border-color:#e4e7ec}
.legal-nav a{border-color:#e0e5ed}
.legal-nav a:hover{background:#f0f4f9}
.privacy-facts>div{background:#f6f8fa;border-color:#e5e9ef}
footer{background:#fff;border-color:#e0e4eb}
/* Compact, non-modal consent bar. The document remains usable. */
.cookie-bar{position:fixed;inset:auto 0 0;z-index:1000;background:#fff;border-top:1px solid #dce2ea;box-shadow:0 -5px 25px #1b294018;padding:12px max(18px,calc((100vw - 1680px)/2));max-height:70dvh;overflow:auto}
.cookie-bar-main{display:grid;grid-template-columns:34px minmax(220px,1fr) auto 28px;gap:15px;align-items:center}
.cookie-bar-icon .ui-icon{width:34px;height:34px}
.cookie-bar-copy h2{font-size:14px;letter-spacing:0;margin:0 0 3px;font-weight:850;color:#26364d}
.cookie-bar-copy p{font-size:12px;line-height:1.6;color:#69768a;margin:0;max-width:800px}
.cookie-bar-copy a{white-space:nowrap;text-decoration:underline;color:#315f99}
.cookie-bar .cookie-actions{display:flex;gap:8px;align-items:center;margin:0}
.cookie-bar .cookie-actions button{min-height:38px;font-size:12px;border-radius:7px;padding:9px 14px;white-space:nowrap}
.cookie-bar .cookie-actions [data-consent=all],.cookie-bar .cookie-actions [data-consent=necessary]{background:#f3f6fa;border:1px solid #bdcce0;color:#164b8a;box-shadow:inset 0 1px 0 #fff}
.cookie-bar .cookie-actions [data-consent=all]:hover,.cookie-bar .cookie-actions [data-consent=necessary]:hover{background:#e8f0fc;border-color:#7d9fc9}
.cookie-bar .cookie-actions [data-consent-settings]{background:#fff;border-color:transparent;font-weight:650;color:#4a5b73}
.cookie-bar .cookie-actions .ui-icon{width:18px;height:18px}
.cookie-bar .cookie-close{position:static;width:28px;min-height:30px;height:30px;font-size:22px;border-radius:5px;background:transparent;color:#78869a}
.cookie-bar #cookie-settings{max-width:1000px;margin:12px auto 0;padding:10px 15px;border-top:1px solid #e4e9ef}
.cookie-bar #cookie-settings:not([open]){display:none}
.cookie-bar #cookie-settings>summary{display:none}
.cookie-bar #cookie-settings .cookie-explanation{margin-top:4px}
.cookie-bar #cookie-settings .cookie-category{padding:10px 0}
.cookie-bar #cookie-settings>button{font-size:12px;margin:7px 12px 3px 0}
.cookie-bar .cookie-links{justify-content:flex-start;margin:10px 0 0}
.cookie-bar #cookie-status{display:block;max-width:1000px;margin:auto;font-size:12px}
.cookie-bar #cookie-status:empty{display:none}
@media(max-width:1050px){.cookie-bar-main{grid-template-columns:30px minmax(0,1fr) 28px;gap:8px 12px}.cookie-bar .cookie-actions{grid-column:2;grid-row:2}.cookie-bar .cookie-close{grid-column:3;grid-row:1}.cookie-bar-icon{grid-row:1/3}.cookie-bar-copy p{font-size:12px}.cookie-bar{padding:10px 16px}}
@media(max-width:480px){.cookie-bar{padding:10px 12px;max-height:65dvh}.cookie-bar-main{grid-template-columns:minmax(0,1fr) 24px;gap:7px}.cookie-bar-icon{display:none}.cookie-bar-copy{grid-column:1}.cookie-bar-copy h2{font-size:13px;margin-bottom:2px}.cookie-bar-copy p{font-size:12px;line-height:1.5}.cookie-bar .cookie-close{grid-column:2}.cookie-bar .cookie-actions{grid-column:1/3;gap:5px}.cookie-bar .cookie-actions button{font-size:11px;min-height:38px;padding:7px 6px;flex:1}.cookie-bar .cookie-actions [data-consent-settings]{gap:3px}.cookie-bar .cookie-actions .ui-icon{width:15px;height:15px}.cookie-bar #cookie-settings{padding:5px;margin-top:8px}.cookie-category strong{font-size:12px}.cookie-category small,.cookie-category p{font-size:11px}}
@media print{.cookie-bar{display:none!important}body{padding-bottom:0;background:#fff}}

/* Editorial finish: quiet surfaces, strong typography and functional colour. */
.ui-icon{filter:none;width:22px;height:22px}
button,.button{border-radius:6px;box-shadow:none;font-weight:700;transition:background .15s,border-color .15s}
button:hover,.button:hover{box-shadow:none}
.primary,input[type=submit]{background:#0756ad;box-shadow:none;border-color:#0756ad}
.primary:hover{background:#03458f}
.panel,.workspace .panel,.stats{border-radius:9px;box-shadow:none}
.topbar:before{height:2px}.subnav{box-shadow:none}.intro>.button{box-shadow:none}
.stats strong,.calendar td>a,.clock{font-variant-numeric:tabular-nums}
.stats .ui-icon{width:30px;height:30px}
.tool-icon{background:none!important;border:0!important;padding:0!important;border-radius:0!important}
.tool-icon .ui-icon{width:34px;height:34px;color:#345475}
.tool-card{display:flex;flex-direction:column;padding:25px;position:relative;gap:8px}
.tool-card h2{font-size:20px;margin:10px 0 0}.tool-card p{font-size:14px;line-height:1.7;color:#657286;margin:0 0 14px}
.tool-open{display:flex;align-items:center;justify-content:space-between;margin-top:auto;font-size:12px;font-weight:800;color:#1255a0}
.tool-open .ui-icon{width:16px;height:16px}
.feature-grid>*,.feature-grid>*:nth-child(2),.feature-grid>*:nth-child(3){background:#fff;border-color:#e0e4e9;border-radius:6px}
.feature-grid>*:nth-child(3){border-top:2px solid #c73244}
.quick-links a,.year-cards a,.story-links>a{border-radius:6px;box-shadow:none}
.category-chip{border-radius:5px;font-weight:650}
.story-visual{min-height:0;padding:0}
.story-visual figure{margin:0;transform:none;border-radius:5px;border:0;box-shadow:none}
.story-visual figure img{height:350px}
.story-visual figcaption{background:#f5f6f7;padding:12px 0;color:#697586}
.story-values .ui-icon{width:32px;height:32px;margin-bottom:14px}
.story-copy h1{letter-spacing:-1.8px}.story-values h2{font-size:20px}.story-steps li>span{color:#b53144}
.story-detail h2{font-size:31px}.story-values{margin:50px auto;padding:30px 0}
.story-copy>p,.story-values p,.story-detail p{color:#596779}
.legal-hero{background:#fff;border-radius:8px}
.legal-emblem{transform:none;border-radius:0;background:none;border:0;box-shadow:none;padding:30px}
.legal-emblem .ui-icon{filter:none;stroke-width:1.15;color:#375976}
.legal-content,.legal-content.standalone{border-radius:8px}.privacy-facts>div{border-radius:5px}
.legal-content p{color:#4e5d70}.legal-content .notice{background:#faf6ec;border-color:#e4d6b9;color:#6e5d37}
.lost-copy h1{font-size:clamp(36px,4vw,58px);color:#1d2e44;letter-spacing:-1.8px}
.lost-calendar{background:#fff;border:1px solid #d7dde5;border-top:6px solid #c83346;border-radius:4px;margin:30px;padding:25px 30px}
.lost-calendar-top,.lost-calendar-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;color:#667388;font-size:10px;font-weight:800;letter-spacing:1px}
.lost-calendar-bottom{font-size:12px;letter-spacing:0;font-weight:500;padding-top:18px;border-top:1px solid #e0e5ec}
.lost-number{position:relative;font-size:clamp(140px,16vw,240px);line-height:1.5;font-weight:900;color:#1f3553;letter-spacing:-14px;text-align:center;font-variant-numeric:tabular-nums}
.lost-number span{position:absolute;left:15%;right:10%;height:2px;top:53%;background:#d8dee6}
.lost-routes .year-cards a{box-shadow:none}
.cookie-bar .cookie-actions [data-consent=all],.cookie-bar .cookie-actions [data-consent=necessary]{box-shadow:none;background:#f5f6f8;border-color:#c5ccd6;color:#243c5b}
@media(max-width:700px){.story-visual{min-height:0;padding:0}.story-visual figure img{height:260px}.lost-visual{grid-row:auto;max-width:none;width:100%}.lost-calendar{margin:5px 10px;padding:20px}.lost-number{font-size:150px;line-height:1.25;letter-spacing:-8px}.lost-copy{margin:0}.lost-page{gap:10px}.story-copy h1{font-size:38px}.story-values article{grid-template-columns:32px 1fr}}

/* A shared, readable scale for numbers, labels and controls. */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:14px 0;margin:0 0 14px;gap:0}
.stats>div{display:grid;grid-template-columns:24px auto;grid-template-rows:28px 21px;justify-content:center;align-content:center;column-gap:11px;row-gap:1px;min-width:0;padding:0 12px;border-right:1px solid #e1e5eb}
.stats>div:last-child{border-right:0}
.stats>div>span{grid-column:1;grid-row:1/3;display:flex;align-items:center;justify-content:center;color:#466184;font-size:inherit}
.stats .ui-icon{width:24px;height:24px;filter:none}
.stats dt{grid-column:2;grid-row:2;font-size:14px;line-height:21px;font-weight:500;color:#5b6a7e;white-space:nowrap}
.stats dd{grid-column:2;grid-row:1;margin:0;font-size:24px;line-height:28px;font-weight:800;letter-spacing:-.4px;color:#20334d;font-variant-numeric:tabular-nums}
.intro h1{font-size:30px;line-height:1.2}.intro p{font-size:16px}
.workspace .panel h2{font-size:18px;line-height:1.3}
.calendar-title h2{font-size:23px!important;line-height:1.25;letter-spacing:-.5px}
.calendar-title .actions{align-items:center;gap:8px}.calendar-title .square{height:38px;min-height:38px}
.calendar-title .button:not(.square){font-size:13px}
.year-cards strong{font-size:34px;line-height:1.2;letter-spacing:-.7px;margin:9px 0;font-variant-numeric:tabular-nums}
.year-cards span{font-size:12px;letter-spacing:1px}.year-cards small{font-size:14px;line-height:1.5}
.sun-result strong{font-size:28px;line-height:1.3;font-variant-numeric:tabular-nums}.sun-result>div{font-size:14px;gap:5px}
.time-row time{font-size:34px;line-height:1.2;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.city-picker select{font-size:13px}.city-picker span{font-size:11px}.today-panel .today-date{font-size:14px}
.weather-summary b{font-size:13px}.weather-summary small{font-size:12px}.weather-source{font-size:11px}
.upcoming b{font-size:13px;line-height:1.4}.upcoming small{font-size:12px;line-height:1.4}.upcoming time{font-size:13px}
.left-panel .check,.task-panel .check{font-size:13px;line-height:1.5}.left-panel .muted,.right-panel .muted{font-size:12px;line-height:1.5}
.right-panel .button-grid button,.right-panel .button-grid .button{font-size:12px;line-height:1.35;min-height:40px}
.right-panel .empty{font-size:13px;line-height:1.6}.right-panel #save-notes{font-size:12px}
.right-panel #day-notes{font-size:14px}.more{font-size:13px}.data-table th{font-size:13px}
.category-chip{font-size:12px;padding:6px 9px;min-height:32px}.event-search input{font-size:12px;min-height:32px}
.result{font-size:16px;line-height:1.7}.source-note{font-size:13px;color:#5f6d7f;border-top:1px solid #e1e6ec;padding-top:18px;margin-top:22px}.source-note p{margin:6px 0}
.related-topics{margin:28px 0}.related-topics>h2{font-size:20px}
@media(max-width:700px){.stats>div{column-gap:8px;padding:0 8px}.stats dt{font-size:13px}.year-cards strong{font-size:30px}.lost-routes .year-cards strong{font-size:30px}.intro h1{font-size:28px}.calendar-title h2{font-size:21px!important}.time-row time{font-size:34px}}
@media(max-width:480px){.stats{padding:12px 0}.stats>div{grid-template-columns:1fr;grid-template-rows:26px 19px;justify-items:center;padding:0 4px}.stats>div>span{display:none}.stats dd{grid-column:1;line-height:26px;font-size:22px}.stats dt{grid-column:1;font-size:12px;line-height:19px}.intro h1{font-size:27px}.intro p{font-size:14px}.calendar-title h2{font-size:20px!important}.calendar-title .actions{gap:5px}.calendar-title .square{width:28px;min-height:34px;height:34px}.category-chip{font-size:11px;padding:6px 8px}.data-table th{font-size:12px}}

/* Calendar labels remain readable alongside compact day numbers. */
.calendar-table .event-label{font-size:11px;line-height:1.4}
@media(max-width:600px){.calendar-table .event-label{font-size:10px}}

/* Keep long holiday names inside narrow day cells without splitting words. */
.calendar .date-events{min-width:0;overflow:hidden}
.calendar .event-label{display:block;width:100%;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;word-break:normal;hyphens:none;line-height:1.35}

/* Put the export gallery within reach before the long year or month grid. */
.calendar-download-callout{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:15px;padding:15px 18px;margin:0 0 14px;background:#fff;border:1px solid #e0e5ed;border-left:4px solid #c52c40;border-radius:7px}
.calendar-download-icon{display:grid;place-items:center;width:36px;height:36px;color:#22588e;background:#edf3fa;border-radius:50%}
.calendar-download-icon .ui-icon{width:21px;height:21px}
.calendar-download-copy .eyebrow{display:block;margin:0 0 3px;color:#66758b;font-size:10px;font-weight:800;letter-spacing:1px}
.calendar-download-copy h2{margin:0;color:#1d3049;font-size:18px;line-height:1.3}
.calendar-download-copy p{margin:3px 0 0;color:#5e6b7e;font-size:13px;line-height:1.5}
.calendar-download-callout>.button{white-space:nowrap;min-height:40px}
@media(max-width:650px){.calendar-download-callout{grid-template-columns:32px minmax(0,1fr);gap:8px 11px;padding:12px}.calendar-download-icon{width:30px;height:30px}.calendar-download-copy h2{font-size:16px}.calendar-download-copy p{font-size:12px}.calendar-download-callout>.button{grid-column:2;justify-self:start;min-height:38px}}
