@layer reset, base, layout, components, views, utilities;
@layer reset{
*{box-sizing:border-box;}
html,body{margin:0;}
h1,h2,h3,p{margin:0;}
button,input,select,textarea{font:inherit;color:inherit;}
button{cursor:pointer;}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;}
img, svg, video, canvas, table { max-width: 100%; }
dialog:not([open]), [hidden] { display: none !important; }
}
@layer base{
html{background:var(--bg);color:var(--label);font-family:var(--font);font-size: 16px;line-height:1.4;}
body{background:var(--bg);min-height:100dvh;overflow-x: hidden;}
button,input,select,textarea,summary,a[href]{min-height: 44px;min-width:44px;touch-action:manipulation;}
button{border:1px solid var(--label-3);background:var(--bg);border-radius:var(--r-field);padding:8px 12px;font-weight:600;}
button:hover{background:var(--bg);}
button:disabled{color:var(--label-2);background:var(--bg);opacity:1;cursor: not-allowed;}
a{color:var(--label);overflow-wrap:break-word;}
a[href]{display:inline-flex;align-items:center;}
h1{font-size:var(--text-view);line-height:30px;font-weight:700;}
h2{font-size:var(--text-section);line-height:26px;font-weight:700;}
h3{font-size:var(--text-title);line-height:22px;font-weight:600;}
p + p{margin-top:8px;}
small{font-size:var(--text-sm);line-height:16px;}
input,select,textarea{width:100%;max-width:100%;background:var(--bg);border:1px solid var(--label-3);border-radius:var(--r-field);padding:10px 12px;}
textarea{resize:vertical;}
input::placeholder,textarea::placeholder{color:var(--label-2);opacity:1;}
input[type=checkbox],input[type=radio]{flex:0 0 44px;width:44px;height:44px;margin:0;padding:0;accent-color: var(--label);}
input[type=color]{padding:4px;}
:focus-visible{outline:2px solid var(--label);outline-offset:3px;}
dialog:focus-visible{outline:none;}
summary{cursor:pointer;padding:12px 8px;font-weight:600;}
details:not([open]) > :not(summary) { display: none; }
strong{font-weight:600;}
button,.mobile-navigation,.mobile-tabbar{-webkit-user-select:none;user-select:none;}
}
@layer layout{
html,body{width:100%;height:100dvh;overflow: hidden;}
body{display:flex;flex-direction:column;}
.icon-sprite{position:absolute;width:0;height:0;}
.skip-link{position:fixed;left:16px;top:-80px;z-index:30;background:var(--bg);padding:8px 16px;}
.skip-link:focus{top:8px;}
.toolbar{height:52px;flex:0 0 52px;display:flex;align-items:center;gap:8px;padding:0 16px;border-bottom:var(--hairline) solid var(--separator);}
.date-nav{display:flex;flex:0 0 auto;}
#periodTitle{flex:1;min-width:80px;font-size:22px;line-height:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.view-switcher{display:flex;flex:0 0 auto;align-items:center;padding:2px;background:var(--fill);border-radius:var(--r-pill);}
.toolbar .search-field{width:200px;flex:0 1 200px;min-width:100px;}
.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);flex:1;min-height:0;position:relative;}
.sidebar{background:var(--bg-2);padding:20px 12px;min-height:0;overflow-y: auto;}
.sidebar nav,.sidebar-section{display:grid;gap:4px;margin-bottom:24px;}
.sidebar-month{padding:0 12px 24px;}
.section-label{padding:0 12px;margin-bottom:8px;}
main{min-width:0;min-height:0;display:flex;flex-direction:column;position:relative;}
.screen-heading{display:none;}
.calendar{min-height:0;flex:1;overflow-y:auto;overflow-x: hidden;overscroll-behavior: contain;padding:16px;}
.today-inspector{display:none;}
.mobile-navigation,.mobile-tabbar{display:none;}
.filter-summary{align-self:center;flex:0 0 auto;margin:4px;background:var(--fill);border:0;border-radius:var(--r-pill);font-size:13px;}
@media (min-width:1280px){
.app-shell{grid-template-columns:248px minmax(0,1fr) 340px;}
.today-inspector{display:block;border-left:var(--hairline) solid var(--separator);padding:16px;overflow-y:auto;}
}
@media (min-width:900px) and (max-width:1279px){
.toolbar .search-field{width:160px;flex-basis:160px;}
}
@media (max-width:899px){
html, body { position: fixed; width: 100%; height: 100dvh;min-height:0;overflow:hidden;}
html.dialog-open{overflow:hidden;}
.mobile-navigation{display:flex;align-items:center;padding:var(--safe-top) max(16px,var(--safe-right)) 0 max(16px,var(--safe-left));height:calc(44px + var(--safe-top));flex:0 0 auto;z-index:3;}
#compactTitle{font-size:17px;font-weight:600;flex:1;visibility:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.title-collapsed #compactTitle,.scrolled #compactTitle{visibility:visible;}
.scrolled .mobile-navigation{background:var(--bar);box-shadow:0 .5px var(--separator);backdrop-filter: blur(20px);-webkit-backdrop-filter: blur(20px);}
.app-shell{display:flex;flex:1;min-height:0;}
.sidebar, .today-inspector { display: none; }
main{width:100%;}
.screen-heading{display:block;padding:0 max(16px,var(--safe-right)) 8px max(16px,var(--safe-left));}
.screen-heading h1{font-size:2.125rem;line-height:41px;font-weight:700;letter-spacing:-.025em;}
.title-sentinel{display:block;height:1px;}
.calendar{padding:8px max(16px,var(--safe-right)) 16px max(16px,var(--safe-left));}
.toolbar{flex:0 0 auto;height:auto;padding:0 16px 4px;flex-wrap:wrap;border:0;gap:4px;}
.toolbar .date-nav{order:2;}
#periodTitle{order:3;font-size:15px;line-height:20px;text-align:center;}
.view-switcher{order:1;margin-right:100%;flex:1 0 100%;}
.view-switcher button{flex:1;}
.toolbar .search-field{width:100%;flex:1 0 100%;order:0;}
#newEventButton{display:none;}
body:not([data-view=list]) .search-field{display:none;}
body[data-view=list] .date-nav,body[data-view=list] .view-switcher,body[data-view=list] #periodTitle{display:none;}
body[data-view=home] .toolbar,body[data-tab=conflicts] .toolbar,body[data-tab=inbox] .toolbar,body[data-tab=settings] .toolbar{display:none;}
body:not([data-view=home]):not([data-view=list]) .screen-heading{display:none;}
body[data-tab=conflicts] .screen-heading,body[data-tab=inbox] .screen-heading,body[data-tab=settings] .screen-heading{display:none;}
.mobile-tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;padding:0 max(8px,var(--safe-right)) var(--safe-bottom) max(8px,var(--safe-left));flex:0 0 auto;background:var(--bar);backdrop-filter: blur(20px);-webkit-backdrop-filter: blur(20px);border-top:var(--hairline) solid var(--separator);z-index:4;}
.mobile-tab{position:relative;min-width:0;height:49px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:2px 0;border:0;background:transparent;color:var(--label-2);font-size:10px;font-weight:600;}
.mobile-tab svg{width:24px;height:24px;}
.mobile-tab.active,.mobile-tab:hover{color:var(--label);background:transparent;}
.mobile-tab .nav-badge{position:absolute;top:0;right:4px;min-width:16px;min-height:16px;padding:0 4px;font-size:10px;}
input,select,textarea{font-size:16px;}
html.pwa-standalone body::before{content:"";position:fixed;inset:0 0 auto;height:var(--safe-top);background:var(--bg);z-index:5;pointer-events:none;}
}
@media (max-height:500px) and (max-width:899px){
.screen-heading{display:none;}
.mobile-navigation{height:calc(44px + var(--safe-top));}
#compactTitle{visibility:visible;}
.toolbar{flex-wrap:nowrap;}
.toolbar .view-switcher{margin:0;flex:0 1 220px;}
.toolbar .date-nav{order:0;}
.calendar{min-height:220px;padding-top:4px;}
}
@supports not ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))){
.mobile-navigation,.mobile-tabbar{background:var(--bg);}
}
}
@layer components{.eyebrow,.section-label,.group-label{color:var(--label-2);font-size:11px;line-height:14px;font-weight:600;letter-spacing:.04em;}
.eyebrow{display:block;margin-bottom:4px;}
.group-label{margin:20px 0 8px;text-transform:uppercase;}
.icon-button{display:inline-grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;}
.primary-button{background:var(--label);color:var(--on-label);border-color:var(--label);display:inline-flex;gap:8px;align-items:center;justify-content:center;}
.primary-button:hover{background:var(--label);}
.secondary-button,.danger-button,.link-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;}
.danger-button{color:var(--danger);}
.nav-item{display:flex;align-items:center;gap:8px;text-align:left;border-color:transparent;background:transparent;width:100%;}
.nav-item.active{color:var(--label);background:var(--bg);border-color:var(--separator);}
.nav-badge{display:inline-grid;place-items:center;margin-left:auto;min-width:24px;min-height:24px;padding:0 6px;border-radius:var(--r-pill);font-size:12px;color:var(--on-badge);background:var(--badge);}
.conflict-button{display:flex;align-items:center;gap:8px;color:var(--danger);}
.search-field{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--label-3);background:var(--bg);border-radius:var(--r-field);}
.search-field input,.search-field input:focus{border:0;background:transparent;padding:0;width:160px;box-shadow:none;}
.filter-check{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-size:13px;}
.source-dot{display:inline-block;width:9px;height:9px;flex:0 0 9px;border-radius:var(--r-pill);background:var(--source-color,var(--src-autre));}
.personal,.source-Personnel{--source-color:var(--src-personnel);}
.work,.source-Travail,.source-Planning-Travail{--source-color:var(--src-travail);}
.union,.source-Syndicat,.source-Planning-Syndicat{--source-color:var(--src-syndicat);}
.gmail,.source-Gmail{--source-color:var(--src-gmail);}
.holiday,.source-Jour-férié{--source-color:var(--src-ferie);}
.imported,.source-Import{--source-color:var(--src-autre);}
.source-only-options{display:grid;gap:8px;}
.view-switcher button{font-size:13px;padding:8px;}
.view-switcher button.active{color:var(--label);border-color:var(--label);}
.event-card{width:100%;min-width:0;display:block;text-align:left;margin:0;padding:10px 12px;border:1px solid var(--separator);border-left:4px solid var(--source-color,var(--src-autre));border-radius:var(--r-field);background:color-mix(in srgb,var(--source-color,var(--src-autre)) var(--tint),var(--bg));color:var(--label);opacity:1;overflow-wrap:break-word;hyphens:auto;}
.event-card:hover{background:var(--bg);border-color:var(--source-color,var(--src-autre));}
.event-card strong{display:block;font-size:15px;line-height:20px;font-weight:600;}
.event-time{display:block;font-size:12px;line-height:16px;margin-bottom:4px;color:var(--label-2);font-variant-numeric:tabular-nums;}
.event-context{display:block;color:var(--label-2);margin-top:4px;}
.source-pill{display:inline-flex;align-items:center;margin-top:6px;padding:2px 6px;border-radius:var(--r-pill);background:var(--bg);color:var(--label);font-size:11px;line-height:14px;font-weight:600;}
.event-flag{display:inline-block;margin:6px 4px 0 0;padding:2px 6px;border-radius:var(--r-block);font-size:11px;line-height:14px;font-weight:600;}
.uncertain,.tone-amber,.warning{background:var(--bg-2);color:var(--label-2);}
.overlap{background:var(--danger-tint);color:var(--danger);}
.modal{width:min(720px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;color: var(--label); background: var(--bg);border:1px solid var(--separator);border-radius:var(--r-card);box-shadow:var(--shadow-2);overflow-y:auto;overscroll-behavior:contain;}
.modal::backdrop { background: var(--scrim); }
.modal-header{position:sticky;top:0;z-index:2;display:flex;gap:12px;justify-content:space-between;align-items:center;padding:20px 24px;background:var(--bg);border-bottom:1px solid var(--separator);}
.modal-header > div{min-width:0;}
.modal form{padding:0 24px 24px;}
.modal form > .modal-header{margin:0 -24px 20px;}
.modal-actions{display:flex;align-items:center;gap:8px;margin-top:20px;flex-wrap:wrap;}
.modal-actions > span{flex:1;}
.panel-modal{width:min(880px,calc(100% - 32px));}
.panel-modal.modal[open] { display: flex; flex-direction: column;overflow:hidden;}
#panelContent{padding:20px 24px 24px;overflow-y:auto;min-height:0;overscroll-behavior:contain;scrollbar-gutter: stable;}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.form-grid label{display:grid;align-content:start;gap:8px;font-size:13px;color:var(--label-2);}
.form-grid .wide{grid-column:1 / -1;}
.form-grid .toggle-row,.toggle-row{display:flex;align-items:center;gap:8px;min-height:44px;}
.label-options,.audit-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.label-pill{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding-right:8px;background:var(--bg);border-radius:var(--r-field);}
.label-color{width:12px;height:12px;border-radius:var(--r-pill);display:inline-block;}
.audit-list{display:grid;gap:12px;}
.audit-item{min-width:0;padding:16px;border:1px solid var(--separator);background:var(--bg);border-radius:var(--r-card);}
.audit-item h3{margin-bottom:8px;}
.audit-meta,.file-description{color:var(--label-2);font-size:13px;line-height:18px;overflow-wrap:break-word;}
.audit-actions{margin-top:12px;}
.form-disclosure,.review-secondary{margin-top:16px;padding:4px 12px;border:1px solid var(--separator);border-radius:var(--r-card);background:var(--bg);}
.form-disclosure[open]{padding-bottom:16px;}
.notice{padding:12px;margin:12px 0;border:1px solid var(--separator);border-radius:var(--r-field);background:var(--bg);color:var(--label);font-size:13px;}
.notice.warning{color:var(--label-2);background:var(--bg-2);}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;}.change-badge{display:inline-block;border-radius:var(--r-pill);padding:4px 8px;font-size:12px;font-weight:600;background:var(--bg);color:var(--label);}
.conflict-batch-bar{position:sticky;top:0;z-index:2;background:var(--bg);}
.conflict-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0;}
.tone-green,.tone-purple{color:var(--label);}
.settings-group{border:1px solid var(--separator);border-radius:var(--r-card);background:var(--bg);overflow:hidden;}
.push-control{display:grid;gap:8px;}
.push-state{font-size:13px;color:var(--label-2);}
.push-state-on{color:var(--src-travail);}
.push-state-blocked,.push-state-partial{color:var(--label-2);}
.segmented-control{display:flex;flex-wrap:wrap;gap:8px;}
.segmented-control button[aria-pressed=true]{color:var(--on-label);background:var(--label);border-color:var(--label);}
.recovery-codes{font-size:17px;line-height:2;letter-spacing:.05em;columns:2;background:var(--bg);padding:16px;border-radius:var(--r-field);overflow-wrap:anywhere;}
.login-modal{max-width:520px;}
.login-hero{text-align:center;padding:8px 0;}
.login-pedestal{display:flex;justify-content:center;margin-bottom:16px;}
.login-icon{display:grid;place-items:center;width:64px;height:64px;background:var(--bg);color:var(--label);border-radius:var(--r-card);}
.login-icon svg{width:32px;height:32px;}
.login-title{font-size:24px;line-height:30px;margin-bottom:8px;}
.login-sub,.login-hint{color:var(--label-2);font-size:13px;}
.login-cta{width:100%;margin:20px 0 12px;}
.login-recovery{margin-top:20px;}
.login-recovery form{padding:12px 0 0;}
.login-recovery label{display:grid;gap:8px;margin:12px 0;}
.login-recovery button{width:100%;margin-top:8px;}.import-tools{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0;color:var(--label-2);font-size:13px;}
.import-stats{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0;}
.import-stats strong{display:block;font-size:24px;color:var(--label);}
.import-row{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--separator);}
.import-row > div{min-width:0;flex:1;}
.import-row small{color:var(--label-2);display:block;}
.import-row strong{display:block;overflow-wrap:break-word;}
.import-footer{margin-top:16px;background:var(--bg);}
.table-wrap{max-width:100%;overflow-x:auto;}
.preview-table{width:100%;border-collapse:collapse;font-size:12px;}
.preview-table th,.preview-table td{text-align:left;padding:10px;border-bottom:1px solid var(--separator);}
.gmail-health-controls,.gmail-connection{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:12px 0;}
.gmail-section-title{margin:20px 0 12px;}
.mail-review-heading{margin-bottom:16px;}
.mail-review-heading h3{font-size:20px;line-height:26px;}
.mail-reader{padding:16px;border:1px solid var(--separator);border-radius:var(--r-card);background:var(--bg);}
#mailBody{white-space:pre-wrap;overflow-wrap:break-word;font:inherit;line-height:1.6;}
.mail-decisions{display:flex;gap:12px;flex-wrap:wrap;position:sticky;bottom:0;padding:16px 0;background:var(--bg);}
.mail-decisions button{flex:1;}
.mail-video-link{margin:12px 0;}
.mail-edit{margin-top:12px;}
.toast-region{position:fixed;z-index:10;bottom:var(--toast-bottom,20px);right:20px;width:min(380px,calc(100% - 24px));pointer-events:none;}
.toast{padding:16px;margin-top:8px;border:1px solid var(--label-3);border-radius:var(--r-card);box-shadow:var(--shadow-2);background:var(--bg);color:var(--label);}
.toast.error{color:var(--danger);}
@media (max-width:899px){/* iOS safe-area positioning is resolved before entering the dialog top layer. */
.modal{inset: auto 0 0; margin: 0; width: 100%; max-width: none;max-height: calc(100dvh - var(--safe-top, 0px) - 10px);border:0;border-radius:14px 14px 0 0;padding-bottom:var(--safe-bottom);}
.modal-header{padding:16px;}
#panelContent{padding:16px;}
.modal form{padding:0 16px 16px;}
.modal form > .modal-header{margin:0 -16px 16px;}
.login-recovery form{padding:0;}
.form-grid{gap:12px;}
}
@media (max-width: 640px){.form-grid{grid-template-columns:1fr;}
.form-grid .wide{grid-column:auto;}
}
}
@layer views{.today-layout,.today-agenda{display:grid;gap:16px;min-width:0;}
.today-section{min-width:0;}
.today-section h3{color:var(--label-2);font-size:13px;line-height:18px;margin:12px 0 4px;}
.next-card{padding:12px;border-radius:var(--r-card);background:var(--bg-2);}
.next-label{font-size:13px;line-height:18px;font-weight:600;margin-bottom:2px;}
.event-row{width:100%;display:flex;align-items:center;gap:8px;min-height:56px;border:0;border-radius:0;background:transparent;text-align:left;padding:8px 0;position:relative;}
.event-row::after{content:"";position:absolute;bottom:0;left:64px;right:0;height:var(--hairline);background:var(--separator);}
.event-row:last-child::after,.next-card .event-row::after{display:none;}
.row-time{flex:0 0 52px;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;}
.event-bar{flex:0 0 3px;height:36px;border-radius:2px;background:var(--source-color,var(--src-autre));}
.row-copy{flex:1;min-width:0;}
.row-copy strong{display:block;font-size:17px;line-height:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400;}
.row-copy small{display:block;font-size:13px;line-height:18px;color:var(--label-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.row-conflict{color:var(--danger);}
.all-day-pills{display:grid;gap:4px;margin-bottom:8px;}
.all-day-pill{border-radius:var(--r-block);background:color-mix(in srgb,var(--source-color) var(--tint),var(--bg));padding:4px 8px;min-height:44px;}
.all-day-pill .row-time{font-size:11px;line-height:13px;}
.all-day-pill .event-bar{height:28px;}
.all-day-pill .row-copy small:empty{display:none;}
.all-day-pill::after{display:none;}
.today-gap,.empty-days,.today-empty{font-size:13px;line-height:18px;color:var(--label-2);padding:12px 0;}
.empty-days span{display:block;}
.past-events{margin-top:8px;}
.past-events summary{color:var(--label-2);font-size:13px;}
.context-banner{text-align:left;width:100%;border:0;background:var(--fill);font-size:13px;border-radius:var(--r-field);}
.context-banner span{display:block;}
.calendar-empty,.calm-empty,.empty-state{padding:24px 16px;text-align:center;background:var(--bg);border:1px solid var(--separator);border-radius:var(--r-card);}
.calendar-empty p{color:var(--label-2);margin:8px 0 16px;}
.loading{padding:20px;color:var(--label-2);}
.skeleton{height:72px;margin-top:12px;background:var(--separator);border-radius:var(--r-field);}
}
@layer components{button{border-color:transparent;}
.icon-button,.text-button{background:transparent;border:0;}
.icon-button:active,.text-button:active{background:var(--fill);}
.secondary-button{background:var(--fill);border:0;}
.nav-badge{background:var(--fill);color:var(--label);font-variant-numeric:tabular-nums;}
[data-count=conflicts]{background:var(--badge);color:var(--on-badge);}
.source-row[aria-pressed=false] .source-dot{background:transparent;border:2px solid var(--source-color);}
.source-dot{width:var(--dot);height:var(--dot);flex-basis:var(--dot);}
.view-switcher button{background:transparent;border:0;border-radius:var(--r-pill);font-size:13px;}
.view-switcher button[aria-pressed=true]{background:var(--bg);box-shadow:var(--shadow-1);}
.search-field{background:var(--fill);padding:0;border:0;gap:0;position:relative;}
.search-field svg{position:absolute;left:10px;width:16px;pointer-events:none;}
.search-field input,.search-field input:focus{width:100%;padding:0 8px 0 32px;}
.event-card{border:0;border-left:3px solid var(--source-color);border-radius:var(--r-block);hyphens:manual;}
.event-card .event-time,.event-card .event-context{color:var(--label);}
.sheet-handle{display:none;}
.modal{transform:translateY(var(--sheet-drag,0px));transition:transform var(--t-sheet) var(--ease-sheet);}
.modal.root-panel{height:calc(100dvh - 52px);position:fixed;inset:52px 0 0 248px;width:auto;max-width:none;max-height:none;margin:0;border:0;border-radius:0;box-shadow:none;z-index:2;background:var(--bg);}
.root-panel .modal-header{border:0;padding:16px 24px;}
.root-panel .modal-header .close-dialog,.root-panel .eyebrow{display:none;}
.root-panel #panelTitle{font-size:28px;line-height:34px;}
.inbox-row{display:flex;gap:12px;align-items:center;text-align:left;border:0;border-radius:0;border-bottom:var(--hairline) solid var(--separator);width:100%;min-height:56px;}
.inbox-row > span:first-child{flex:1;}
.settings-group{border:0;background:var(--bg-2);}
.appearance{flex-wrap:nowrap;background:var(--fill);border-radius:var(--r-field);padding:3px;}
.appearance button{flex:1;border:0;background:transparent;}
.appearance button[aria-pressed=true]{background:var(--bg);color:var(--label);box-shadow:var(--shadow-1);}
.toast-region{left:50%;right:auto;transform:translateX(-50%);}
.toast{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 16px;background:var(--label);color:var(--on-label);border:0;border-radius:var(--r-pill);box-shadow:none;pointer-events:auto;}
.toast.error{color:var(--on-label);}
.toast button{background:transparent;color:inherit;}
@media (min-width:900px){.toolbar button,.toolbar input,.toolbar select{min-height:32px;height:32px;}
.toolbar .icon-button{width:32px;flex-basis:32px;min-width:32px;}
.toolbar svg{width:17px;height:17px;}
.modal:not(.root-panel):not(.login-modal){position:fixed;inset:var(--sheet-top,68px) var(--sheet-right,16px) auto auto;width:360px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 84px);margin:0;}
.modal:not(.root-panel) .form-grid{grid-template-columns:1fr;}
.modal:not(.root-panel) .form-grid .wide{grid-column:auto;}
}
@media (max-width:899px){.sheet-handle{display:grid;place-items:center;background:transparent;border:0;width:100%;min-height:24px;height:24px;touch-action:none;padding:0;}
.sheet-handle span{width:36px;height:5px;background:var(--label-3);border-radius:var(--r-pill);}
.sheet-handle{min-height:44px;}
.modal:not(.root-panel),.modal:not(.root-panel) .modal-header{background:var(--bg-2);}
.scrolled .root-panel:not(.pushed-panel) .modal-header{display:none;}
.modal[data-detent=medium]{height:55dvh;}
.modal[data-detent=large]{height:calc(100dvh - var(--safe-top,0px) - 10px);}
.modal.root-panel{inset:calc(44px + var(--safe-top,0px)) 0 calc(49px + var(--safe-bottom,0px));width:100%;height:calc(100dvh - 93px - var(--safe-top) - var(--safe-bottom));max-height:none;}
.root-panel .sheet-handle{display:none;}
.root-panel .modal-header{padding:0 16px 8px;}
.root-panel #panelTitle{font-size:34px;line-height:41px;}
.modal-header .eyebrow{display:none;}
.modal-header{padding:8px 16px;}
.toast-region{bottom:max(var(--toast-bottom,0px),calc(57px + var(--safe-bottom)));}
}
}
@layer utilities{
.row-copy small{font-weight:400;}
.event-time,.source-pill,.event-flag{max-width:100%;white-space:normal;overflow-wrap:anywhere;}
@media (max-width:899px){
#newEventButton,body:not([data-view=list]) .search-field{display:none;}
.scrolled .screen-heading{display:none;}
}
@media (max-width: 900px) and (display-mode: standalone){
body::before{content:"";position:fixed;inset:0 0 auto;height: env(safe-area-inset-top);background:var(--bg);z-index:5;pointer-events:none;}
}
.hidden{display:none;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none;transition:none;scroll-behavior:auto;}}
@media (hover:none) and (pointer:coarse){@supports (font:-apple-system-body){html{font:-apple-system-body;}}}
}
@layer layout{#searchHeader{display:none;}
.week-strip{display:none;}
#todayDate{height:18px;color:var(--label-2);font-size:13px;line-height:18px;font-weight:600;}
body[data-view=day] .calendar,body[data-view=week] .calendar{padding:0;}
.sidebar-month{padding:0 0 20px;}
.mini-header{display:flex;align-items:center;gap:2px;}
.mini-header strong{flex:1;text-transform:capitalize;}
.mini-header .icon-button{width:28px;height:28px;min-width:28px;min-height:28px;flex-basis:28px;}
.mini-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;}
.mini-grid > span{font-size:11px;color:var(--label-2);padding:4px 0;}
.mini-grid button{border:0;background:transparent;padding:0;min-width:24px;min-height:28px;font-size:12px;}
.date-disc{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:var(--r-pill);font-variant-numeric:tabular-nums;}
.mini-grid .date-disc{width:26px;height:26px;}
[aria-selected=true] .date-disc,[aria-pressed=true] .date-disc{background:var(--fill);}
.date-disc.is-today{color:var(--on-label);background:var(--label);}
@media (max-width:899px){body[data-tab=calendar]:not([data-view=list]) #compactTitle{display:none;}
.mobile-navigation .view-switcher{order:-1;margin:0 auto 0 0;flex:0 1 210px;height:32px;}
.mobile-navigation .view-switcher button{min-width:50px;height:44px;padding:4px 8px;}
.mobile-navigation{gap:4px;}
.toolbar{height:36px;min-height:36px;padding:0 16px;flex-wrap:nowrap;gap:4px;}
.toolbar .date-nav{display:contents;}
#previousButton{order:0;}
#periodTitle{order:1;font-size:17px;}
#nextButton{order:2;}
#todayButton{order:3;display:block;padding:4px;font-size:12px;}
#periodTitle{flex:1;text-transform:capitalize;}
.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));height:56px;flex:0 0 56px;padding:0 16px;}
.week-strip button{display:flex;flex-direction:column;align-items:center;gap:0;border:0;background:transparent;border-radius:0;padding:0;min-width:44px;min-height:56px;font-weight:400;}
.week-strip small{font-size:11px;line-height:14px;color:var(--label-2);}
body[data-view=list] .mobile-navigation,body[data-view=list] .toolbar,body[data-view=list] .screen-heading,body[data-view=list] .mobile-tabbar{display:none;}
body[data-view=list] #searchHeader{display:flex;align-items:center;gap:8px;flex:0 0 auto;padding:var(--safe-top) 16px 8px;min-height:52px;background:var(--bg);}
#searchHeader .search-field{flex:1;min-width:0;height:36px;display:flex;}
#searchHeader input{min-height:44px;font-size:16px;}
#cancelSearch{padding:0;font-size:15px;}
}
@media (max-height:500px) and (max-width:899px){.week-strip{display:none;}
.mobile-tabbar{min-height:32px;}
.mobile-tab{height:44px;min-height:44px;flex-direction:row;gap:4px;}
.mobile-tab svg{width:18px;height:18px;}
.calendar{min-height:220px;}
}
}
@layer views{.timeline-shell{--gutter:56px;height:100%;display:flex;flex-direction:column;min-height:0;}
.day-timeline{max-width:760px;margin:0 auto;}
.timeline-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;}
.timeline{--hour-h:48px;position:relative;height:calc(24 * var(--hour-h));margin-bottom:calc(var(--scroll-h) - var(--hour-h));display:grid;grid-template-columns:var(--gutter) minmax(0,1fr);transform:translateX(var(--swipe,0px));touch-action:pan-y;}
.week-timeline .timeline{grid-template-columns:var(--gutter) repeat(7,minmax(0,1fr));}
.hour-gutter{position:relative;height:100%;background:var(--bg);}
.hour-gutter span{position:absolute;top:var(--top);right:8px;font-size:11px;line-height:14px;font-variant-numeric:tabular-nums;color:var(--label-2);}
.time-column{position:relative;height:100%;margin:0;padding:0;min-width:0;list-style:none;border-left:var(--hairline) solid var(--separator);background-image:repeating-linear-gradient(to bottom,var(--separator) 0 .5px,transparent .5px var(--hour-h));}
.time-column.has-all-day{background-image:repeating-linear-gradient(135deg,transparent 0 6px,var(--fill) 6px 7px),repeating-linear-gradient(to bottom,var(--separator) 0 .5px,transparent .5px var(--hour-h));}
.timeline-block{position:absolute;top:var(--top);height:var(--h);left:calc(100% * var(--col) / var(--columns));width:calc(100% / var(--columns) - 2px);min-width:0;}
.timeline-hit{position:relative;width:100%;height:100%;min-height:24px;min-width:0;display:flex;flex-direction:column;padding:0;border:0;border-radius:var(--r-block);text-align:left;color:var(--label);background:transparent;}
.block-face{display:block;height:var(--h);min-height:24px;padding:4px 8px;border-left:3px solid var(--source-color);border-radius:var(--r-block);background:color-mix(in srgb,var(--source-color) var(--tint),var(--bg));overflow:hidden;}
.block-face strong{text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:15px;line-height:18px;hyphens:manual;overflow-wrap:normal;}
.block-face small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--label);font-size:13px;}
.week-timeline .block-face{padding:4px;}
.week-timeline .block-face strong{font-size:13px;line-height:16px;}
.block-start{display:none}
.compact-block .block-face{display:flex;align-items:center;padding:2px;gap:2px}
.compact-block strong{display:block;white-space:nowrap;flex:1;min-width:0}
.compact-block small,.compact-block .block-conflict{display:none}
.compact-block .block-start{display:block;flex:none;font-size:11px;white-space:nowrap}
.block-conflict{position:absolute;right:2px;top:2px;color:var(--danger);background:var(--bg);font-size:13px;}
.now-line{position:absolute;left:0;right:0;top:var(--top);height:1.5px;background:var(--label);pointer-events:none;z-index:2;}
.now-line::before{content:"";position:absolute;left:-3px;top:-3px;width:7px;height:7px;border-radius:var(--r-pill);background:var(--label);}
.now-line span{position:absolute;right:calc(100% + 4px);top:-8px;padding:0 2px;background:var(--bg);color:var(--label);font-size:11px;font-weight:700;}
.week-timeline .now-line span{left:4px;right:auto;}
.timeline-empty{position:absolute;top:calc(8 * var(--hour-h));padding:8px;color:var(--label-2);font-size:13px;pointer-events:none;}
.timeline-day-head,.all-day-strip{display:grid;grid-template-columns:var(--gutter) minmax(0,1fr);flex:0 0 auto;}
.week-timeline .timeline-day-head,.week-timeline .all-day-strip{grid-template-columns:var(--gutter) repeat(7,minmax(0,1fr));}
.timeline-day-head button{min-width:0;min-height:44px;border:0;border-radius:0;background:transparent;padding:4px;font-size:13px;}
.timeline-day-head [aria-current=date]{font-weight:700;text-decoration:underline;text-underline-offset:5px;}
.all-day-strip{background:var(--bg);border-bottom:var(--hairline) solid var(--separator);max-height:160px;overflow-y:auto;}
.all-day-caption{font-size:11px;color:var(--label-2);padding:4px;}
.all-day-cell{min-width:0;padding:2px;}
.all-day-cell .event-row{min-height:28px;padding:2px 4px;margin:2px 0;gap:4px;}
.all-day-cell .row-time,.all-day-cell small{display:none;}
.all-day-cell .row-copy strong{font-size:13px;line-height:18px;}
.all-day-cell .event-bar{height:20px;}
.all-day-more summary{min-height:24px;padding:2px 4px;font-size:12px;}
.week-agenda{padding:0 16px 16px;}
.week-section h3,.list-day-heading{position:sticky;top:0;z-index:1;background:var(--bg);color:var(--label-2);font-size:13px;line-height:28px;text-transform:uppercase;}
.week-empty{height:32px;line-height:32px;font-size:13px;color:var(--label-2);white-space:nowrap;}
.list-view{display:grid;gap:8px;}
.list-day{content-visibility:auto;contain-intrinsic-size:auto 600px;}
.search-results-title{font-size:22px;line-height:28px;margin-bottom:8px;}
.search-actions,.export-actions{display:grid;gap:8px;}
.search-actions button,.export-actions button{text-align:left;}
.inbox-row small{display:block;font-size:13px;font-weight:400;color:var(--label-2);}
.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}
.month-weekday{height:20px;text-align:center;font-size:11px;color:var(--label-2);}
.month-day{min-width:0;min-height:128px;border-top:var(--hairline) solid var(--separator);border-right:var(--hairline) solid var(--separator);padding:2px;}
.month-select{width:100%;min-width:0;min-height:28px;height:28px;border:0;background:transparent;padding:0;text-align:right;display:flex;justify-content:flex-end;}
.month-select .date-disc{width:24px;height:24px;font-size:13px;}
.month-event-line{display:flex;align-items:center;gap:3px;width:100%;min-width:0;min-height:24px;height:24px;padding:3px 2px;border:0;border-radius:0;background:transparent;text-align:left;font-size:12px;line-height:18px;font-weight:400;}
.month-event-line span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.month-event-line time{color:var(--label-2);font-size:11px;}
.month-event-line.is-all-day{background:color-mix(in srgb,var(--source-color) var(--tint),var(--bg));}
.month-extra{width:100%;min-height:24px;min-width:0;padding:2px;border:0;background:transparent;font-size:11px;text-align:left;color:var(--label-2);}
.outside-month{color:var(--label-3);}
.calendar-dots{display:flex;justify-content:center;gap:3px;height:5px;flex:0 0 auto;}
.calendar-dot{display:inline-block;width:5px;height:5px;flex:0 0 5px;border-radius:var(--r-pill);background:var(--source-color,var(--label-2));}
.calendar-dot.more-dot{background:var(--label-2);}
.calendar-dot.conflict-dot{background:var(--danger);clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0;}
.selected-day-list{border-top:var(--hairline) solid var(--separator);margin-top:8px;padding-top:8px;}
@media (max-width:899px) and (min-height:501px){.timeline-shell{--gutter:52px;}
.timeline-hit{min-height:44px;}
.all-day-cell .event-row{min-height:44px;}
.all-day-more summary{min-height:44px;}
.month-day,.month-blank{min-height:46px;height:46px;padding:0;border:0;border-top:var(--hairline) solid var(--separator);}
.month-select{height:46px;min-height:44px;flex-direction:column;align-items:center;justify-content:flex-start;padding:0;}
.month-select .date-disc{width:32px;height:32px;font-size:17px;}
}
}
@layer utilities{[name=reminder_policy]{min-height:var(--control-min-height,44px);}
@media (prefers-contrast:more){.time-column,.month-day{border-color:var(--label);}
}
@media (prefers-reduced-motion:reduce){.timeline{transform:none;}
}
}
@layer views{@media(max-width:899px) and (max-height:500px){.timeline-hit{min-height:44px;min-width:44px}.block-face{width:var(--face-w)}.all-day-cell .event-row,.all-day-more summary,.month-select,.month-event-line,.month-extra{min-height:44px;height:auto}.month-select{height:44px}.month-day{min-height:210px}}}
@layer views{#calendar{transform:translateX(var(--period-drag,0px))}@media(prefers-reduced-motion:reduce){#calendar{transform:none}}}

@layer views{
.event-header h2{font-size:15px;line-height:18px;text-align:center}
.event-header{gap:4px}
.event-title{display:grid;gap:4px}
.quick-fields label{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}
.quick-fields input{width:70%}
.quick-fields [data-error]{width:100%}
.quick-fields fieldset{border:0;padding:0;margin:8px 0}
.duration-choices{display:flex;gap:2px}
.duration-choices button{padding:2px;flex:1;font-size:12px}
.duration-choices [aria-pressed=true]{background:var(--fill)}
.form-feedback{color:var(--danger);font-size:13px}
.read-content,.action-sheet{padding:16px}
[data-event-read] h2{margin:16px 0 8px}
[data-event-read] .source-dot{display:inline-block}
[data-event-read] dl{margin:16px 0}
[data-event-read] dl div{padding:12px 0;border-bottom:var(--hairline) solid var(--separator)}
[data-event-read] dt{color:var(--label-2);font-size:13px}
[data-event-read] dd{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.action-sheet button{margin-top:8px}
.conflict-card{margin-top:12px}
.conflict-pair{font-size:13px}
.conflict-pair h4{margin:4px 0;overflow-wrap:anywhere}
.conflict-batch-bar{top:auto;bottom:0;padding:12px 0}
.conflict-ruler{position:relative;display:flex;justify-content:space-between;height:54px;font-size:11px;color:var(--label-2)}
.conflict-ruler i,.conflict-ruler b{position:absolute;left:var(--from);right:calc(100% - var(--to));height:8px;top:24px;background:var(--source-color)}
.conflict-ruler i:nth-of-type(2){top:38px}
.conflict-ruler b{height:26px;background:repeating-linear-gradient(135deg,transparent 0 4px,var(--label-2) 4px 5px)}
}

@layer views{.conflict-selection{appearance:none;border:1px solid var(--label-2);border-radius:50%}.conflict-selection:checked{background:var(--label);box-shadow:inset 0 0 0 5px var(--bg)}}

@layer views{.event-video{border-radius:var(--r-field);text-decoration:none}}

@layer views{
.setting-line{display:flex;align-items:center;gap:12px;min-height:56px;padding:12px 16px;border-bottom:var(--hairline) solid var(--separator);flex-wrap:wrap}
.setting-line>span:first-child{flex:1;min-width:0}
.setting-line small{display:block;color:var(--label-2);font-size:13px}
.settings-group .inbox-row{background:var(--bg);font-size:17px;font-weight:400}.inbox-row>span:last-child{font-size:13px;color:var(--label-3)}
.setting-line .appearance{margin-left:auto}
.mail-proposal{padding:12px;background:var(--bg-2);border-radius:var(--r-field)}
.mail-reader{padding:16px 0;border:0;border-radius:0}
#mailBody{font-size:17px;line-height:1.5}
.mail-review-heading #mailSender{font-weight:600}
.mail-decisions{background:var(--bg);border-top:var(--hairline) solid var(--separator);z-index:3;margin-bottom:-16px;bottom:-16px}
.mail-decisions button{min-height:50px;white-space:normal;hyphens:none}
.mail-video-link{min-height:44px;display:flex;align-items:center;text-decoration:none}
.file-picker{display:flex;align-items:center;justify-content:center;min-height:50px;margin:16px 0;cursor:pointer}
.file-picker:has(+input:focus-visible){outline:2px solid var(--label);outline-offset:2px}
#importChosen button,.import-result>button{width:100%;margin-top:12px}
.import-result{text-align:center}
.import-result h3{font-size:28px;line-height:34px;margin:16px 0}
.import-check{display:block;font-size:44px}
.import-result dl{margin:16px 0;text-align:left}
.import-result dl div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:var(--hairline) solid var(--separator)}
.import-result dd{margin:0}
.modal[data-busy=true] .close-dialog,.modal[data-busy=true] .sheet-handle{visibility:hidden}
.login-modal.modal[open]{inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0}
.login-modal .modal-header,.login-modal .sheet-handle{display:none}
.login-modal #panelContent{display:grid;place-items:center}
.login-hero{width:min(100%,420px)}
#offlineBanner{min-height:32px;padding:4px 16px;flex-shrink:0;background:var(--fill);font-size:13px}#offlineBanner span{display:block}
@media(min-width:900px){.import-modal{width:480px}}
@media(max-width:899px){.mail-decisions{flex-direction:column}.mail-decisions button{width:100%;flex:none}.setting-line{font-size:17px}.setting-line .appearance{width:100%}.setting-line .appearance button{font-size:15px}}
}

input.switch-fallback[role=switch]{appearance:none;position:relative;flex-basis:51px;width:51px;height:44px;border:0;background:none}
.switch-fallback[role=switch]::before{content:"";position:absolute;inset:6.5px 0;border-radius:var(--r-pill);background:var(--fill);border:1px solid var(--label-2)}
.switch-fallback[role=switch]::after{content:"";position:absolute;top:8.5px;left:2px;width:27px;height:27px;border-radius:50%;background:var(--label-2)}
.switch-fallback[role=switch]:checked::before{background:var(--label)}
.switch-fallback[role=switch]:checked::after{transform:translateX(20px);background:var(--bg)}

.import-footer{position:sticky;bottom:-16px;padding:12px 0 calc(12px + var(--safe-bottom));border-top:var(--hairline) solid var(--separator)}
[data-import-state=refused] h3{color:var(--danger)}

.modal-header:has(#offlineBanner){flex-wrap:wrap}.modal-header>#offlineBanner{flex-basis:100%;order:1}.scrolled .root-panel .modal-header:has(#offlineBanner){display:flex}
