/* Shared StudioPilot design. Screen-only: original documents and print scale stay intact. */
@media screen {
:root{--ink:#263b32;--deep:#213b32;--deep-2:#2c463c;--paper:#f7f6f0;--card:#fffefa;--line:#dce2d7;--muted:#647267;--green:#355f4e;--lime:#dbe8bb;--coral:#dfaa93;--blue:#dcebe5;--purple:#e7e1ed;--shadow:0 8px 28px #213b3209;--sp-radius:20px;--sp-sand:#f3ecdf;--sp-sage:#eaf0e4}
body{background:var(--paper);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.5}
:where(main,section,article,aside,form,header,nav)>*{min-width:0}
:where(h1,h2,h3,h4,p,dd,a,button,label){overflow-wrap:break-word}
:where(h1,h2){color:var(--ink);font-family:Georgia,serif;font-weight:400;letter-spacing:-.025em;line-height:1.2}
:where(button,input,select,textarea){font-family:inherit}
:where(input,select,textarea){max-width:100%;font-size:16px;accent-color:var(--green)}
:where(input:not([type=checkbox],[type=radio],[type=color],[type=file]),select,textarea){border:1px solid #cbd6ca;border-radius:12px;background:#fffefa;color:var(--ink);padding:11px 13px;min-height:46px}
:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #638675;outline-offset:3px}
:where(button,a){-webkit-tap-highlight-color:transparent}
:where(button:disabled){cursor:not-allowed}
:where(.eyebrow,.kicker,.prototype-label){font-size:12px;letter-spacing:.1em;line-height:1.6;color:var(--muted)}
:where(.primary-button,.secondary-button,.ghost-button,.export-button,.detail-button){min-height:44px;border-radius:12px;font-size:14px;line-height:1.4;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.primary-button,.artist-create-trigger{background:var(--green);border-color:var(--green);color:white}
.secondary-button{background:var(--sp-sage);border-color:#d0dccd;color:#355b47}
.ghost-button{background:var(--card);color:var(--ink)}
:where(.panel,.compose,.login-card,.customer-directory-card,.case-card,.file-card){border-color:var(--line);border-radius:var(--sp-radius);box-shadow:var(--shadow)}
:where(dialog){background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:24px;max-height:calc(100dvh - 32px);overscroll-behavior:contain}
:where(dialog)::backdrop{background:#182e25a6;backdrop-filter:blur(3px)}
:where(.close,.dialog-close){min-width:44px;min-height:44px;background:#eaf0e4;color:var(--ink);border-radius:50%}
:where(.close){top:10px;right:12px}
/* Secondary pages share one calm header and a consistent content width. */
:is(.pinboard-page,.calendar-page,.signing-page,.tablet-page,.catalog-page,.viewer-page)>header,.files-top{background:#e8eee2;color:var(--ink);border-bottom:1px solid #d1dccd;padding:20px max(24px,calc((100vw - 1280px)/2));max-width:none;margin:0;gap:18px;flex-wrap:wrap}
:is(.pinboard-page,.signing-page,.tablet-page,.catalog-page)>header :is(strong,.brand,#home){font:500 25px/1.2 Georgia,serif;color:var(--ink)}
:is(.pinboard-page,.signing-page,.catalog-page)>header a{color:var(--green);text-underline-offset:4px}
:is(.pinboard-page,.catalog-page)>main{max-width:1328px;padding:28px 24px 64px}
:is(.signing-page,.tablet-page)>main{max-width:1080px;padding:28px 24px 64px}
.calendar-page>main{max-width:1328px;padding:24px}
.files-main{max-width:1328px;padding:28px 24px 64px}
.files-top a{color:var(--ink)}.files-brand small{color:var(--muted)}
.files-top nav{gap:6px;flex-direction:row;flex-wrap:wrap}.files-top nav a{padding:9px 12px;border-radius:10px;font-size:14px;min-height:42px}.files-top nav a[aria-current],.files-top nav a:hover{background:#d9e4d3}
:is(.files-title,.heading) h1,.calendar-page h1,.signing-page main>h1,.catalog-page h1{font:400 clamp(28px,3vw,36px)/1.2 Georgia,serif;letter-spacing:-.025em;margin:8px 0 12px}
.pinboard-page .heading p,.files-title p,.catalog-page .intro>p:last-child{font-size:16px;line-height:1.6;color:var(--muted)}
/* Dashboard and all its internal views. */
.dashboard-page .topbar{padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:22px}
.dashboard-page .topbar h1{font-size:clamp(28px,3vw,36px);line-height:1.2}
.dashboard-page .view-toolbar{align-items:center;flex-wrap:wrap;margin:8px 0 22px;gap:16px}
.dashboard-page .view-toolbar h2{font-size:27px;line-height:1.25}
.dashboard-page .view-toolbar>div:last-child{flex-wrap:wrap}
.dashboard-page .panel-heading{flex-wrap:wrap;gap:12px}
.dashboard-page .panel-heading h2{font-size:24px;line-height:1.25}
.dashboard-page :is(.settings-section,.template-list,.automation-preview,.document-list,.warning-card){padding:24px}
.dashboard-page .settings-section h3{font:400 24px/1.25 Georgia,serif;margin:0 0 20px}
.dashboard-page :is(.settings-section,.dialog-body) label{font-size:14px;line-height:1.5}
.dashboard-page :is(.settings-section,.dialog-body) input:not([type=checkbox],[type=radio],[type=color],[type=file]),.dashboard-page :is(.settings-section,.dialog-body) select{font-size:16px;min-height:46px}
.dashboard-page .quick-note{background:var(--sp-sand);border-color:#ded3be}
.dashboard-page .feedback-panel{background:#edf1e8;border-color:#d5decf}
.dashboard-page .birthday-card{background:#edf3f0;border-color:#d5e1da}
.dashboard-page .prototype-note{background:#f1eee4;border:1px solid #ded9cb;align-items:flex-start;flex-wrap:wrap;font-size:14px;line-height:1.6}
.dashboard-page :is(.project-row,.birthday-row,.voucher-list>div){gap:14px}
.dashboard-page :is(.project-row,.birthday-row,.voucher-list)>*{min-width:0}
.dashboard-page .status,.dashboard-page .consent{font-size:12px;white-space:normal}
.dashboard-page .sidebar{overflow-y:auto;overscroll-behavior:contain}.sidebar .nav-item{min-height:44px}
.dashboard-page .artist-full-profile{background:var(--card);border-radius:24px}
/* Pinnwand B: warm notes, green team cards, quieter settings. */
.pinboard-page .layout{gap:24px;align-items:start;margin-top:24px}
.pinboard-page .note-card{background:#f3ecdf;border-color:#dfd4bf;padding:22px;border-radius:20px}
.pinboard-page .note-card.team{background:#e6eddf;border-color:#cfdcc6}
.pinboard-page .note-card h2,.pinboard-page .compose h2{font:400 25px/1.25 Georgia,serif}
.pinboard-page .note-badge,.pinboard-page .note-meta,.pinboard-page .note-footer{font-size:13px}
.pinboard-page .compose{background:var(--card);padding:24px}
.pinboard-page .compose>button{background:var(--green);min-height:46px}
.pinboard-page .push-panel{background:#edf0e8;padding:16px 20px;border-color:var(--line);margin-top:20px}
.pinboard-page .tabs{background:#e7ecdf}.pinboard-page .tabs button{min-height:44px;font-size:14px}
.pinboard-page .tabs button.active{background:var(--green)}
/* Records and attachment controls. */
.files-page .file-tabs button{min-height:44px;font-size:14px}
.files-page :is(.case-actions,.file-actions)>*{min-height:44px;font-size:14px;border-radius:10px}
.files-page .case-card.selected{border-color:#719176;background:#f4f7ef}
.files-page .file-drop{background:#f0f4e9;border:1px dashed #9eaf95;border-radius:18px}
.files-page .file-toolbar{gap:16px;flex-wrap:wrap}
.files-page .file-badge{font-size:13px}.files-page .empty-files{background:var(--sp-sage);line-height:1.6}
/* Calendar geometry is preserved; only its frame and controls change. */
.calendar-page .toolbar{background:var(--card);padding:16px;border:1px solid var(--line);border-radius:18px;align-items:center}
.calendar-page .toolbar label{font-size:14px}.calendar-page .week-nav button{min-height:44px;font-size:14px;border-radius:12px}
.calendar-page .week-scroll{border-color:var(--line);box-shadow:var(--shadow)}
.calendar-page .notice{background:var(--sp-sage);border-color:#8ca482;border-radius:12px}
/* Tablet and signing admin share controls, preserving original form artwork. */
.signing-page .card,.tablet-page .card{background:var(--card);border-color:var(--line);box-shadow:var(--shadow);border-radius:20px}
.signing-page .card h2,.tablet-page .card h2{font:400 25px/1.3 Georgia,serif;margin:0 0 18px}
.signing-page #setup{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.signing-page #setup>.card{margin:0;min-width:0}.signing-page #setup>.card:last-child{grid-column:1/-1}
.signing-page .pairing-qr{flex-wrap:wrap;gap:18px}.signing-page .pairing-qr canvas{max-width:100%}
.signing-page button.primary,.tablet-page button.primary{background:var(--green);border-color:var(--green)}
.signing-page .job{padding:18px;background:#f4f6ee;border:1px solid var(--line);border-radius:14px;margin-top:12px}
.tablet-page .steps{gap:8px;padding:12px;background:#edf1e8;border-radius:16px}
.tablet-page .steps span{flex:1;text-align:center;padding:10px 12px;border-radius:10px;font-size:14px}
.tablet-page .steps .active{background:var(--green)}
.tablet-page fieldset{padding:18px;background:#f5f7f0;border:1px solid var(--line);border-radius:14px;margin-bottom:14px}
.tablet-page fieldset legend{padding:0 6px;font-size:16px}
.tablet-page .actions{gap:12px;border-top:1px solid var(--line);padding-top:20px}
.tablet-page .actions button{min-height:48px}.tablet-page .check{padding:14px;border-radius:12px;background:#f3f5ee}
/* Catalogue is a working collection, not a second landing page. */
.catalog-page .intro{padding:0 0 16px;max-width:760px}.catalog-page .intro>p{margin:8px 0}
.catalog-page .review{padding:16px 20px;background:var(--sp-sage);border-radius:14px;border-color:#8ca482}
.catalog-page .controls{margin-top:24px;gap:16px}.catalog-page .filters button{min-height:44px;border-radius:12px}
.catalog-page .catalog-grid{gap:18px}.catalog-page .card{background:var(--card);border-color:var(--line);box-shadow:var(--shadow)}
.catalog-page .card h2{font-size:24px}.catalog-page .card-body{padding:18px}
.catalog-page .detail-button{background:#e8eee1}.catalog-page .card-image{background:#e5eadc}
/* Login / file viewer belong to the same product without navigation leakage. */
.login-page main{margin:clamp(28px,7vh,76px) auto}.login-page .brand{color:var(--ink)}
.login-page .login-card{background:var(--card);padding:32px;border-color:var(--line)}
.login-page button:not(.text-button){background:var(--green);border-color:var(--green)}
.viewer-page>header{padding-top:20px;padding-bottom:20px}.viewer-page header h1{font:400 28px/1.25 Georgia,serif;margin:10px 0 18px}
.viewer-page header button,.viewer-page header a{min-height:44px;border-radius:12px;font-size:14px;background:var(--green);display:inline-flex;align-items:center}
.viewer-page header p{font-size:14px}.viewer-page #pages{padding-bottom:40px}
@media(max-width:900px){.signing-page #setup{grid-template-columns:1fr}.signing-page #setup>.card:last-child{grid-column:auto}.dashboard-page .settings-grid{grid-template-columns:1fr}}
@media(max-width:650px){
:is(.pinboard-page,.calendar-page,.signing-page,.tablet-page,.catalog-page,.viewer-page)>header,.files-top{padding:16px;gap:12px}
:is(.pinboard-page,.calendar-page,.signing-page,.tablet-page,.catalog-page)>main,.files-main{padding:22px 16px 48px}
.dashboard-page .topbar{gap:12px;flex-wrap:wrap;padding-bottom:16px}.dashboard-page .topbar>div{min-width:0}.dashboard-page .top-actions{margin-left:auto;flex-wrap:wrap}
.dashboard-page :is(.settings-section,.template-list,.automation-preview,.document-list,.warning-card){padding:18px}
.dashboard-page .view-toolbar h2{font-size:25px}.dashboard-page .view-toolbar>button{max-width:100%}
.pinboard-page .layout{grid-template-columns:1fr;gap:18px}.pinboard-page .compose,.pinboard-page .note-card{padding:20px}
.calendar-page .toolbar{padding:14px}.calendar-page .week-nav{width:100%}.calendar-page .toolbar>label{width:100%}
.catalog-page .catalog-grid{gap:12px}.catalog-page .card-body{padding:14px}.catalog-page .card h2{font-size:23px}
.signing-page .card,.tablet-page .card{padding:20px 16px}.tablet-page .steps span{flex:1 1 40%}
.login-page .login-card{padding:24px}.viewer-page header>div:last-of-type{gap:8px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
}
/* Windows into original illustration sheets; also used on appointment printouts. */
.piercing-picture{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;overflow:hidden;background:#e1e8d8;border-radius:14px;flex-shrink:0}
.piercing-picture .piercing-crop{display:block;position:relative;overflow:hidden;flex:none}
.piercing-picture .piercing-crop>img{position:absolute;display:block;border:0;border-radius:0;margin:0;padding:0;object-fit:fill;aspect-ratio:auto;max-height:none;float:none}
.piercing-picture.motif-thumb{width:56px;height:56px;border-radius:12px}
.piercing-appointment-preview>.piercing-picture{width:220px;max-width:100%}
.motif-image-button>.piercing-picture{width:100%;max-width:320px}
.motif-image-button>.piercing-picture>.piercing-crop{padding:0;background:none;font-size:inherit}
.catalog-page .card-image>.piercing-picture{border-radius:0}
.calendar-detail-picture{max-width:320px;margin:20px auto}
.calendar-motif{width:48px;height:48px;float:right}
.timed-event .calendar-motif{display:none}
.print-motifs .piercing-picture{max-width:320px}
@media print{.print-motifs .piercing-picture{width:75mm;max-width:100%;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}.piercing-picture .piercing-crop>img{max-height:none}}
@media screen and (max-width:760px){
.dashboard-page :is(.project-list,.document-list){overflow:visible;background:transparent;border:0;box-shadow:none;padding:0;display:grid;gap:12px}
.dashboard-page .project-row:not(.project-head),.dashboard-page .document-row:not(.document-head){min-width:0;grid-template-columns:1fr 1fr;gap:12px;padding:18px;background:var(--card);border:1px solid var(--line);border-radius:16px;font-size:14px}
.dashboard-page .project-row.project-head,.dashboard-page .document-row.document-head{display:none}
.dashboard-page :is(.project-row,.document-row)>span:first-child{grid-column:1/-1;font-size:16px}
.dashboard-page .project-row>*:nth-child(4){display:block}
.dashboard-page .project-row>span:nth-child(2)::before{content:'Artist: ';color:var(--muted)}
.dashboard-page .project-row>span:nth-child(3)::before{content:'Sitzungen';display:block;font-size:12px;color:var(--muted)}
.dashboard-page .project-row>em{justify-self:start;align-self:center}
.dashboard-page .document-row>span:nth-child(2){grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}
.dashboard-page .document-row>button{min-height:44px}
.dashboard-page .birthday-overview,.dashboard-page .voucher-grid{grid-template-columns:1fr}
.dashboard-page .birthday-row:not(.heading){grid-template-columns:1fr 1fr;gap:12px;padding:16px 0;font-size:14px}
.dashboard-page .birthday-row.heading{display:none}
.dashboard-page .birthday-row>span:nth-child(2){grid-column:2;grid-row:1/3}
.dashboard-page .birthday-row button{min-height:44px;justify-self:start}
.dashboard-page .voucher-list>div{grid-template-columns:1fr auto;gap:12px}.dashboard-page .voucher-list em{justify-self:start}
.dashboard-page .template-list>button{gap:12px;flex-wrap:wrap;min-height:64px}
}
.motif-image-button>.piercing-picture{padding:0;display:grid}
.motif-panel.expanded .motif-image-button>.piercing-picture{max-width:none}
/* Mobile review: controls stay available; only calendar tracks scroll sideways. */
.mobile-nav-close,.mobile-nav-backdrop{display:none}
@media screen and (max-width:760px){
.dashboard-page .topbar{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center}
.dashboard-page .topbar .top-actions{grid-column:1/-1;display:flex;justify-content:flex-end;width:100%;margin:0;gap:10px}
.dashboard-page .top-actions .icon-button{display:inline-grid;place-items:center;flex:none}
.dashboard-page .top-actions .primary-button{font-size:14px;min-height:44px;padding:10px 16px}
.dashboard-page .top-actions .primary-button::after{content:none}
.dashboard-page .prototype-label{font-size:12px;line-height:1.5}
.dashboard-page .mobile-menu{width:44px;height:44px}
#dashboard .segmented{display:flex;flex-wrap:wrap;max-width:100%;gap:2px}
#dashboard .segmented button{flex:1;min-width:64px}
.dashboard-page .birthday-table{min-width:0;width:100%}
.dashboard-page .birthday-month{overflow:visible;min-width:0}
.dashboard-page .sidebar{height:100dvh;width:min(300px,calc(100vw - 48px));padding-top:18px;padding-bottom:max(20px,env(safe-area-inset-bottom));z-index:30;overflow-y:auto}
.dashboard-page .sidebar .brand{padding-right:42px;flex-shrink:0}
.dashboard-page .mobile-nav-close{display:grid;place-items:center;position:absolute;top:12px;right:10px;width:44px;height:44px;border:1px solid #62776b;border-radius:12px;background:#30483e;color:white;font-size:26px}
.mobile-nav-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:#10261c80;border:0;padding:0;z-index:29;backdrop-filter:blur(2px)}
body.mobile-nav-open{overflow:hidden}
.dashboard-page .sidebar-foot{margin-top:24px;flex-shrink:0}
#detail-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);overflow:auto}
#detail-dialog .dialog-body,#detail-dialog.wide .dialog-body{padding:64px 18px 22px}
.files-page #files-dialog{width:calc(100% - 24px);max-width:none;padding:18px;max-height:calc(100dvh - 24px)}
#files-dialog-body{padding-top:42px}
.dashboard-page .dialog-actions{flex-wrap:wrap;gap:10px}.dashboard-page .dialog-actions>button{flex:1 1 130px;min-height:46px}
.dashboard-page .dialog-body .field-row{grid-template-columns:1fr}
#artist-list .artist-summary,#artist-list .artist-summary:last-child{grid-template-columns:1fr;gap:14px}
#artist-list .artist-photo-link{justify-self:start;display:flex;align-items:center;gap:14px;text-align:left}
#artist-list .artist-photo-link .artist-portrait{width:112px;height:120px}
#artist-list .artist-summary-info{width:100%}
.artist-contact-links>a{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.artist-full-profile .artist-contact-details>div{grid-template-columns:1fr;gap:4px}
.files-page .file-grid{grid-template-columns:1fr}
.files-page .file-preview{height:210px}
.files-page .customer-identity{flex-wrap:wrap;gap:14px}
.files-page .customer-head-actions{display:grid;grid-template-columns:1fr;gap:10px}
.files-page .customer-head-actions button{width:100%}
.files-page .file-tabs{gap:6px}.files-page .file-tabs button{flex:1 1 125px;white-space:normal}
.pinboard-page .tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.pinboard-page .note-top,.pinboard-page .note-footer{flex-wrap:wrap}
.pinboard-page .compose input[type=datetime-local]{width:100%;min-width:0;min-inline-size:0;appearance:none;-webkit-appearance:none;min-height:48px}
.calendar-page .week-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.calendar-page .week-nav>label{grid-column:1/-1;grid-row:1}
.calendar-page .week-nav input{width:100%;min-width:0;min-inline-size:0}
.calendar-page .calendar-editor-fields{grid-template-columns:1fr}
.calendar-page dialog{padding:64px 18px 22px}
.signing-page .pairing-qr{flex-direction:column;align-items:stretch}
.signing-page .pairing-qr canvas{align-self:center}
.tablet-page .actions>*{flex:1 1 140px}
.tablet-page input[type=date],.tablet-page input[type=datetime-local]{min-inline-size:0;width:100%;appearance:none;-webkit-appearance:none}
.catalog-page .detail-layout{grid-template-columns:1fr;gap:18px}
.catalog-page .detail-layout>.piercing-picture{max-width:320px;margin:auto}
:is(.files-page,.signing-page,.tablet-page,.pinboard-page,.calendar-page) :is(input,select,textarea){font-size:16px}
:is(.files-page,.signing-page,.tablet-page,.pinboard-page,.catalog-page) main{padding-bottom:max(48px,calc(24px + env(safe-area-inset-bottom)))}
}
@media screen and (max-width:430px){
#dashboard .metric-card{grid-template-columns:1fr;gap:6px;min-height:132px}
#dashboard .metric-card>strong{grid-column:1;grid-row:auto;order:0;font-size:28px;margin:0}
#dashboard .metric-card>span{font-size:14px;line-height:1.35}
#dashboard .metric-card>p{font-size:13px}
.catalog-page .catalog-grid{grid-template-columns:1fr}
.catalog-page .card-image>.piercing-picture{max-width:280px;max-height:none;aspect-ratio:1;margin:auto}
.catalog-page .search,.catalog-page .search input{width:100%;min-width:0}
.viewer-page header>div:last-of-type>*{flex:1 1 140px;justify-content:center}
}
/* Screenshot review: a compact day card with unbroken filter labels. */
@media screen and (max-width:760px){
#dashboard .appointments-panel{padding:16px;background:#fffefa;border-color:#dce2d7;border-radius:18px}
#dashboard .appointments-panel .panel-heading{display:block;margin:0 0 12px}
#dashboard .appointments-panel .kicker{font-size:11px;line-height:1.4;letter-spacing:.09em}
#dashboard .appointments-panel .panel-heading h2{font-size:25px;line-height:1.2;margin:5px 0 14px}
#dashboard .appointments-panel .segmented{display:flex;width:100%;max-width:100%;flex-wrap:nowrap;gap:4px;padding:4px;overflow-x:auto;border-radius:12px;background:#edf0e7}
#dashboard .appointments-panel .segmented button{flex:1 0 auto;min-width:max-content;min-height:40px;height:auto;padding:9px 10px;font-size:14px;font-weight:600;line-height:20px;white-space:nowrap;word-break:normal;overflow-wrap:normal;border-radius:9px}
#dashboard .appointments-panel .segmented button.active{background:#355f4e;color:#fff;box-shadow:none}
#dashboard .appointments-panel #daily-filter-status{font-size:13px;line-height:1.45;margin:10px 0 12px;color:#667267}
#dashboard .appointments-panel .appointment-list{margin-top:0}
#dashboard .daily-scroll{max-height:340px;max-height:min(340px,52svh);border-radius:12px;padding:12px 0;scroll-padding-top:12px}
.dashboard-page .daily-timeline{grid-template-columns:46px minmax(0,1fr);min-width:0;width:100%}
.dashboard-page .daily-axis>span{left:4px;font-size:11px;padding:2px}
.dashboard-page .daily-event{color:#243e2e;padding:5px 6px;border-radius:8px;border-left-width:3px;gap:2px}
.dashboard-page .daily-event-heading{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:nowrap;gap:1px;flex-shrink:0;color:#243e2e}
.dashboard-page .daily-event-heading time{font-size:11px;line-height:14px;flex-shrink:0}
.dashboard-page .daily-event-heading strong{display:block;max-width:100%;font-size:13px;line-height:17px;flex-shrink:0;color:#243e2e}
.dashboard-page .daily-event-description{font-size:11px;line-height:14px;flex-shrink:0;color:#425b46}
.dashboard-page .daily-event small.daily-event-description{display:none}
.dashboard-page .daily-short .daily-event-heading{flex-direction:row;gap:4px}
#dashboard .metric-card{min-height:108px;padding:13px;gap:4px}
#dashboard .metric-card>small{font-size:11px;line-height:1.4}
}

/* Phone calendar: one readable day, with the full week always in reach. */
#mobile-week{display:none}
.calendar-page #calendar-export summary{cursor:pointer;color:var(--green);font-size:14px;min-height:44px;padding:12px 0;width:fit-content}
.calendar-page #calendar-export .export-button{margin:4px 0}
@media screen and (max-width:760px){
 .calendar-page>main{padding:16px 16px calc(32px + env(safe-area-inset-bottom,0px));min-width:0}
 .calendar-page .week-scroll,.calendar-page .calendar-hint{display:none}
 .calendar-page #mobile-week{display:block;margin-top:16px}
 .calendar-page .toolbar{padding:12px;margin:12px 0;gap:12px}
 .calendar-page .week-nav button{min-height:44px;font-size:14px}
 .calendar-page .toolbar>label{width:100%}
 .calendar-page #filter{width:100%;min-height:46px}
 .calendar-page #range{font-size:16px;margin:16px 0 4px}
 .calendar-page #calendar-export{margin:0;border-bottom:1px solid var(--line);padding-bottom:4px}
 .calendar-page #calendar-export p{font-size:14px;font-weight:400;line-height:1.5;margin:8px 0 12px}
 .mobile-day-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
 .mobile-day-picker button{min-width:0;min-height:88px;padding:8px 2px;border:1px solid var(--line);border-radius:12px;background:#eef1e9;color:var(--ink);cursor:pointer;display:grid;justify-items:center;gap:3px}
 .mobile-day-picker button[aria-pressed=true]{background:var(--green);color:white;border-color:var(--green)}
 .mobile-day-picker span{font-size:14px}.mobile-day-picker strong{font-size:18px;line-height:1.2}
 .mobile-day-picker small{font-size:12px;line-height:18px;min-width:18px;border-radius:9px;background:#ffffff80;color:#294a3b}
 .mobile-day-picker [aria-pressed=true] small{background:#ffffff25;color:white}
 .mobile-week-count{font-size:14px;color:var(--muted);font-weight:400;margin:10px 0 20px}
 .mobile-day-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:0 0 12px}
 .mobile-day-title h2{font:400 24px/1.25 Georgia,serif;margin:0}
 .mobile-day-title>span{font-size:14px;color:var(--muted)}
 .mobile-day-events{display:grid;gap:10px}
 .mobile-day-events .event-read{position:static;width:100%;margin:0;padding:14px 16px;border:1px solid #d4e0d2;border-left:4px solid #739581;border-radius:14px;background:#fffefa;min-height:90px;overflow-wrap:anywhere}
 .mobile-day-events .event-read strong{font-size:14px;font-variant-numeric:tabular-nums;color:var(--green)}
 .mobile-day-events .event-read span{font-size:18px;font-weight:650;line-height:1.35;margin:5px 0}
 .mobile-day-events .event-read small{font-size:14px;line-height:1.5;color:var(--muted)}
 .mobile-day-events .calendar-motif{display:none}
 .mobile-day-empty{background:#eef1e9;border:1px dashed #cbd6c7;border-radius:14px;padding:20px;font-size:15px;color:var(--muted);margin:0}
 .calendar-page header h1{font-size:28px}
 .calendar-page header #identity{font-size:14px}
 .calendar-page .notice{font-size:14px;line-height:1.5}
}

/* Compact calendar controls; keep native date fields within iOS grid tracks. */
@media screen and (max-width:760px){
 .calendar-page .calendar-board-link{margin:0 0 8px;font-size:14px}
 .calendar-page .notice{padding:0;background:none;border:0;margin:8px 0 14px;font-size:13px;color:var(--muted);font-weight:400}
 .calendar-page .toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:0;border:0;background:none;margin:0 0 14px;box-shadow:none}
 .calendar-page .week-nav{width:100%;display:grid;grid-template-columns:66px minmax(0,1fr) 66px;gap:8px;align-items:center}
 .calendar-page .week-nav>label{grid-column:2;grid-row:1;display:block;min-width:0;overflow:hidden}
 .calendar-page .week-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .calendar-page #previous{grid-column:1;grid-row:1}
 .calendar-page #next{grid-column:3;grid-row:1}
 .calendar-page .week-nav button{height:44px;min-height:44px;margin:0;padding:8px 4px;white-space:nowrap;font-size:14px;border-color:var(--line);background:#edf1e8;border-radius:10px;font-weight:500}
 .calendar-page .week-nav input[type=date]{display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-inline-size:0;height:44px;min-height:44px;padding:8px 4px;appearance:none;-webkit-appearance:none;font-size:16px;font-weight:500;text-align:center;border-radius:10px}
 .calendar-page .week-nav input::-webkit-date-and-time-value{min-width:0;text-align:center;margin:0}
 .calendar-page .toolbar>label{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:8px;font-size:14px;font-weight:500}
 .calendar-page #filter{height:44px;min-height:44px;padding:8px 12px;font-size:16px;font-weight:400;border-radius:10px}
 .calendar-page #range{font-size:14px;font-weight:500;margin:12px 0;color:var(--muted)}
 .calendar-page #mobile-week{margin-top:10px}
 .calendar-page .mobile-day-picker{gap:3px}
 .calendar-page .mobile-day-picker button{min-height:68px;padding:6px 2px;gap:1px;border-radius:10px;border-color:transparent}
 .calendar-page .mobile-day-picker span{font-size:12px;font-weight:500}
 .calendar-page .mobile-day-picker strong{font-size:17px;font-weight:600}
 .calendar-page .mobile-day-picker small{font-size:11px;line-height:15px;min-width:15px;background:none}
 .calendar-page .mobile-week-count{font-size:13px;margin:8px 0 16px}
 .calendar-page .mobile-day-title h2{font-size:22px}
 .calendar-page #calendar-export{margin-top:24px;border-top:1px solid var(--line);border-bottom:0}
 .calendar-page #calendar-export summary{font-size:14px;font-weight:400}
}

.calendar-page .event-artist{display:block;font-size:15px;line-height:1.3;color:var(--green);margin:3px 0;overflow-wrap:anywhere}
.calendar-page .timed-event .event-artist{font-size:13px;line-height:17px;flex-shrink:0}
.calendar-page .timed-event .event-motif{display:none}
@media screen and (max-width:760px){
 .calendar-page .mobile-day-events .event-read{position:relative;padding-right:110px;min-height:132px}
 .calendar-page .mobile-day-events .event-artist{font-size:19px;font-weight:700;line-height:1.3;margin:7px 0 4px;color:#315b49}
 .calendar-page .mobile-day-events .event-read>span:not(.event-motif){font-size:16px;font-weight:500}
 .calendar-page .mobile-day-events .event-motif{position:absolute;right:12px;top:14px;width:82px;display:flex;flex-direction:column;gap:5px;margin:0}
 .calendar-page .mobile-day-events .event-motif .calendar-motif{display:block;float:none;width:82px;height:82px;aspect-ratio:1;border-radius:12px;margin:0;object-fit:cover}
 .calendar-page .mobile-day-events .event-motif em{font-style:normal;font-size:11px;font-weight:400;line-height:1.2;text-align:center;color:var(--muted)}
}
