*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 'Segoe UI','Microsoft YaHei',sans-serif}
a{color:var(--green);text-decoration:none}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{touch-action:manipulation}
button,summary{cursor:pointer}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--color-muted);outline-offset:3px}
h1,h2,h3,p{margin-top:0}
h1{font-size:29px;line-height:1.35;margin-bottom:10px;font-weight:var(--weight-medium);letter-spacing:.5px}
h2{font-size:20px;line-height:1.4;margin-bottom:12px}
h3{font-size:17px;margin-bottom:9px}
p{margin-bottom:14px}
small,.fine{font-size:13px;color:var(--muted)}
.muted{color:var(--muted)}
.eyebrow{color:var(--muted);font-size:13px;letter-spacing:1.5px;margin-bottom:8px}
.topbar{min-height:94px;background:var(--color-surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:52px;padding:18px 3.5vw}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:25px;font-weight:var(--weight-medium);line-height:1.2}
.brand small{display:block;font-size:11px;letter-spacing:2px;margin-top:6px;font-weight:var(--weight-regular)}
.brand-mark{position:relative;display:grid;place-items:center;width:42px;height:46px;border:2px solid var(--green);border-radius:var(--radius-panel) 14px 14px 3px;color:var(--green);font-size:29px}
.brand-mark span{font-size:10px;position:absolute;bottom:5px;right:6px}
.topbar nav{display:flex;gap:32px;align-self:stretch;align-items:center}
.topbar nav a{color:var(--muted);position:relative;white-space:nowrap}
.topbar nav a.active{color:var(--green);font-weight:var(--weight-medium)}
.topbar nav a.active:after{content:'';height:3px;background:var(--green);position:absolute;left:12%;right:12%;bottom:-22px;border-radius:var(--radius-control)}
.account{margin-left:auto;display:flex;gap:20px;align-items:center;font-size:14px}
.account form{margin:0}
.user-name{padding:5px 11px;background:var(--pale);border-radius:var(--radius-dialog);color:var(--green)}
.quiet{color:var(--muted)}
.container{max-width:1700px;padding:34px 3.5vw 45px;margin:auto}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}
.page-heading p{margin:0}
.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);color:var(--ink);padding:10px 18px;min-height:44px;font-size:15px;white-space:nowrap;transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast)}
.button:hover,.icon-button:hover{border-color:var(--color-muted);background:var(--color-surface-hover)}
.button.primary{background:var(--green);border-color:var(--green);color:var(--color-on-dark);box-shadow:none}
.button.primary:hover{background:var(--green-dark)}
.button.small{padding:6px 12px;font-size:14px;min-height:38px}
.icon-button{padding:4px 12px;font-size:25px;min-height:38px;line-height:1}
.button-group{display:flex;gap:7px}
.link-button{padding:4px 0;border:0;background:transparent;color:var(--green);font-size:14px}
.link-button.subtle{color:var(--color-muted)}
.link-button:hover{text-decoration:underline}
.panel{background:var(--color-surface);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:none}
.schedule-layout{display:grid;grid-template-columns:minmax(440px,1.05fr) minmax(410px,1fr);gap:24px;align-items:start}
.calendar-panel{padding:25px 20px 12px}
.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:10px}
.calendar-header h2{margin:0}
.legend{display:flex;gap:20px;font-size:12px;color:var(--muted);flex-wrap:wrap;margin-bottom:20px}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}
.dot.green{background:var(--color-accent)}
.dot.orange{background:var(--color-warning)}
.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.weekdays{color:var(--color-muted);font-size:13px;text-align:center;padding-bottom:12px}
.calendar-grid{gap:5px}
.calendar-cell{min-height:121px;padding:7px 5px;border:1px solid transparent;border-radius:var(--radius-panel);color:var(--ink);display:flex;flex-direction:column;align-items:center;text-align:center;font-size:12px;line-height:1.5;min-width:0;overflow-wrap:anywhere}
.calendar-cell:hover{background:var(--color-surface-hover)}
.calendar-cell.suggested{background:var(--color-surface-subtle);border-color:var(--color-border)}
.calendar-cell.selected{background:var(--color-surface-subtle);border-color:var(--color-accent);box-shadow:none}
.calendar-cell.out-month{opacity:.35}
.day-number{font-size:16px;font-weight:var(--weight-medium);display:grid;place-items:center;width:29px;height:29px;border-radius:50%;margin-bottom:3px}
.day-number.today{background:var(--green);color:var(--color-surface)}
.unopened{color:var(--color-border-strong);margin-top:7px}
.day-count{font-weight:var(--weight-medium)}
.day-capacity{color:var(--green)}
.day-pending{color:var(--amber);font-size:11px}
.calendar-staff{font-size:10px;color:var(--color-muted);margin-top:4px;line-height:1.5}
.calendar-foot{border-top:1px solid var(--color-surface-subtle);padding-top:15px;text-align:center;font-size:12px;color:var(--muted);margin-top:16px}
.day-panel{padding:26px}
.day-heading{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.day-heading h2{font-size:24px;margin-bottom:5px}
.date-icon{width:64px;min-width:64px;height:77px;border:1px solid var(--color-border);border-radius:var(--radius-panel);overflow:hidden;text-align:center;background:var(--color-surface-hover)}
.date-icon small{display:block;background:var(--color-surface-subtle);color:var(--color-muted);line-height:24px}
.date-icon strong{font-size:29px;font-weight:var(--weight-medium)}
.day-summary{font-size:14px;margin:0;color:var(--muted)}
.day-summary b{color:var(--green);font-weight:var(--weight-medium)}
.day-summary span{padding:0 6px;color:var(--color-border-strong)}
.day-summary em{font-style:normal;color:var(--amber)}
.staff-strip{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:13px 14px;background:var(--color-surface-hover);border-radius:var(--radius-panel);font-size:13px;color:var(--muted);margin-bottom:13px}
.staff-strip b{color:var(--color-ink-secondary);font-weight:var(--weight-medium);margin-left:3px}
.staff-strip a{margin-left:auto;font-size:13px}
.day-note{color:var(--muted);font-size:14px;white-space:pre-wrap}
.slot-toolbar{display:flex;gap:8px;align-items:flex-start;margin:19px 0 10px;flex-wrap:wrap}
.slot-row{display:flex;gap:17px;padding:14px 0;border-bottom:1px solid var(--color-surface-subtle);align-items:stretch}
.slot-bookings{display:grid;gap:9px;flex:1;min-width:0}
.slot-bookings .booking-card{width:100%}
.same-time-add{justify-self:start;font-size:13px;padding:5px 2px;color:var(--color-accent)}
.same-time-add:hover{text-decoration:underline}
.slot-time{width:62px;min-width:62px;font-size:19px;font-weight:var(--weight-medium);padding-top:14px;line-height:1.3}
.slot-time small{display:block;font-size:10px;font-weight:var(--weight-regular);margin-top:5px}
.booking-card{display:block;flex:1;min-width:0;background:var(--color-surface-hover);border:1px solid var(--color-border);border-left:3px solid var(--color-muted);border-radius:var(--radius-panel);padding:13px 15px;color:var(--ink)}
.booking-card:hover{border-color:var(--color-muted);box-shadow:none}
.booking-card-top{display:flex;gap:10px;justify-content:space-between;align-items:center}
.booking-card-top strong{font-size:17px;overflow-wrap:anywhere}
.booking-card-meta{display:flex;gap:13px;flex-wrap:wrap;margin-top:6px;color:var(--color-muted);font-size:12px}
.booking-card p{font-size:12px;color:var(--muted);margin:7px 0 0}
.badge{display:inline-block;font-size:12px;line-height:1.6;padding:3px 9px;border-radius:var(--radius-control);background:var(--color-surface-subtle);color:var(--color-ink-secondary);white-space:nowrap}
.badge.scheduled{color:var(--color-accent);background:var(--color-surface-subtle)}
.badge.amber{background:var(--amber-bg);color:var(--amber)}
.badge.shooting_completed{color:var(--color-accent);background:var(--color-surface-subtle)}
.badge.cancelled{background:var(--color-surface-subtle);color:var(--color-muted)}
.badge.rescheduled{background:var(--color-surface-subtle);color:var(--color-muted)}
.vacant{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px dashed var(--color-border);border-radius:var(--radius-panel);flex:1;padding:18px 16px;background:var(--color-surface);min-height:76px}
.vacant>a{color:var(--color-muted);font-size:14px}
.vacant form{margin:0}
.closed{opacity:.65}
.history-section{margin-top:24px;font-size:14px}
.history-section summary{color:var(--muted)}
.history-line{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:12px 2px;font-size:14px}
.current-chain{font-weight:var(--weight-medium);background:var(--pale)}
.day-footer{font-size:12px;color:var(--color-muted);margin-top:23px}
.empty-intro{padding:22px;background:var(--color-surface-hover);border:1px dashed var(--color-border);border-radius:var(--radius-panel);margin-bottom:10px}
.empty-intro p{font-size:14px;color:var(--muted)}
.inline-setup{margin-top:20px}
.empty-state{text-align:center;padding:45px 25px;color:var(--muted)}
.empty-state h3{color:var(--color-ink-secondary)}
.empty-symbol{margin:0 auto 10px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:32px;color:var(--color-muted);background:var(--color-surface-subtle)}
.back-link{display:inline-block;margin-bottom:20px;color:var(--muted);font-size:14px}
.form-panel{max-width:850px;margin:auto;padding:34px 38px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}
.field{min-width:0}
.field label{display:block;font-size:14px;margin-bottom:7px;font-weight:var(--weight-medium);color:var(--color-ink-secondary)}
.field small{display:block;margin-top:5px}
.field.wide,.form-grid>.wide{grid-column:1/-1}
.required{color:var(--color-warning)}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{width:100%;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-panel);padding:10px 12px;color:var(--ink);min-height:44px;outline:none;max-width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--color-muted)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-ink) 9%,transparent)}
input::placeholder,textarea::placeholder{color:var(--color-border-strong)}
textarea{resize:vertical}
.field .checkbox,.checkbox{display:flex;gap:10px;align-items:center;font-size:15px;cursor:pointer}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--green);flex-shrink:0}
.form-section-title{font-size:16px;border-top:1px solid var(--border);padding-top:24px;margin-top:25px;margin-bottom:0;color:var(--color-ink-secondary)}
.form-section-title small{font-weight:var(--weight-regular);margin-left:10px}
.form-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--border);padding-top:22px;margin-top:28px}
.confirmation-check{margin:25px 0;padding:16px;background:var(--color-surface-hover);border-radius:var(--radius-panel)}
.confirmation-check small{display:block;margin-top:6px}
.notice{padding:13px 17px;border-radius:var(--radius-panel);margin:0 0 18px;font-size:14px;border:1px solid var(--color-border);background:var(--pale);color:var(--color-accent)}
.notice.info{background:var(--color-surface-subtle);color:var(--color-ink-secondary);border-color:var(--color-border)}
.notice.warning,.notice.error{background:var(--color-warning-soft);color:var(--color-warning);border-color:var(--color-border)}
.errorlist{list-style:none;color:var(--color-danger);padding:0;margin:6px 0;font-size:13px}
.form-errors{background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:11px 15px;color:var(--color-danger)}
.form-errors .errorlist{margin:0}
.candidate-box{border:1px solid var(--color-border);background:var(--color-surface-hover);padding:15px;border-radius:var(--radius-panel);margin:15px 0}
.candidate-box button{margin:4px 8px 4px 0}
.detail-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:25px}
.detail-main,.timeline{padding:28px}
.detail-title{display:flex;justify-content:space-between;align-items:center;gap:18px}
.detail-title h1{overflow-wrap:anywhere}
.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}
.amber-button{color:var(--amber);border-color:var(--color-border-strong);background:var(--color-warning-soft)}
.danger-outline{color:var(--color-muted)}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px 25px;margin:25px 0}
.detail-grid dt{font-size:13px;color:var(--muted);margin-bottom:6px}
.detail-grid dd{margin:0;overflow-wrap:anywhere}
.note-block{border-top:1px solid var(--border);padding-top:20px;color:var(--color-ink-secondary)}
.note-block p{font-size:15px}
.timeline h2{margin-bottom:5px}
.timeline-item{position:relative;padding:0 0 27px 23px;margin-left:3px;border-left:1px solid var(--color-border)}
.timeline-item h3{font-size:15px;margin-bottom:5px}
.timeline-item p{font-size:13px;margin:8px 0}
.timeline-dot{width:9px;height:9px;background:var(--color-muted);border:2px solid var(--color-surface);box-shadow:0 0 0 1px var(--color-muted);border-radius:50%;position:absolute;left:-5px;top:7px}
.timeline-item details{font-size:12px;color:var(--color-muted);margin-top:7px}
.event-change{display:grid;gap:3px;padding:6px 0;overflow-wrap:anywhere}
.event-change span{color:var(--color-muted)}
.search-panel{padding:28px}
.search-form{display:flex;gap:12px;margin-bottom:22px}
.search-form input{flex:1}
.search-form select{max-width:160px}
.result-row{display:flex;gap:25px;align-items:center;padding:20px 0;border-top:1px solid var(--border);color:var(--ink)}
.result-row:hover{background:var(--color-surface-hover)}
.result-date{width:115px;min-width:115px;display:grid;font-size:14px;gap:4px}
.result-date span{color:var(--muted)}
.result-main{flex:1;min-width:0;display:grid;gap:4px}
.result-main strong{overflow-wrap:anywhere}
.result-arrow{color:var(--color-muted)}
.pagination{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:20px}
.staff-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.staff-card{display:flex;align-items:center;gap:17px;padding:24px;color:var(--ink)}
.staff-card>span:last-child{margin-left:auto}
.staff-card h2{font-size:19px;margin-bottom:7px}
.staff-avatar{display:grid;place-items:center;background:var(--color-surface-subtle);color:var(--color-muted);border-radius:50%;width:48px;height:48px;font-size:23px;flex-shrink:0}
.staff-roles{display:flex;flex-wrap:wrap;gap:4px}
.staff-roles .badge{font-size:11px}
.staff-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.login-wrap{min-height:65vh;display:grid;place-items:center}
.login-card{width:min(100%,440px);padding:38px}
.login-card .form-grid{display:block}
.login-card .field{margin-bottom:20px}
.login-card h1{font-size:26px}
.login-card .fine{text-align:center;margin-top:23px}
.full{width:100%}
footer{font-size:12px;color:var(--color-muted);text-align:center;padding:10px 20px 25px}
footer span{margin-left:17px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(min-width:1450px){.calendar-cell{min-height:136px}
.calendar-staff{font-size:11px}
.calendar-panel{padding:27px}
.day-panel{padding:30px}
}

@media(max-width:1120px){.topbar{gap:28px}
.topbar nav{gap:22px}
.account{gap:12px}
.brand small{display:none}
.schedule-layout{grid-template-columns:minmax(370px,1fr) minmax(360px,1fr);gap:16px}
.container{padding-left:22px;padding-right:22px}
.calendar-panel{padding:20px 12px}
.day-panel{padding:20px}
.slot-row{gap:10px}
.booking-card{padding:12px}
.booking-card-top{flex-wrap:wrap;gap:5px}
.calendar-staff{font-size:10px}
.staff-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.user-name{display:none}
}

@media(max-width:820px){.topbar{padding:17px 20px;gap:18px;flex-wrap:wrap}
.brand{font-size:22px}
.brand-mark{width:35px;height:39px;font-size:24px}
.topbar nav{gap:20px;order:3;width:100%;font-size:14px;justify-content:center}
.topbar nav a.active:after{bottom:-8px}
.account{font-size:12px}
.schedule-layout{grid-template-columns:1fr}
.day-panel{order:-1}
.calendar-cell{min-height:96px}
.page-heading{align-items:flex-start}
h1{font-size:25px}
.page-heading p{font-size:14px}
.detail-layout{grid-template-columns:1fr}
.staff-fields{grid-template-columns:1fr 1fr}
.staff-cards{grid-template-columns:1fr 1fr}
}

@media(max-width:520px){.container{padding:24px 14px}
.page-heading{flex-direction:column;gap:15px}
.page-heading .button{align-self:flex-end}
.topbar{padding:14px 16px}
.account{gap:12px}
.account .quiet{font-size:12px}
.form-panel,.detail-main,.timeline,.search-panel{padding:23px 18px}
.form-grid,.detail-grid,.staff-fields{grid-template-columns:1fr;gap:16px}
.form-panel h1{font-size:24px}
.form-section-title small{display:block;margin-left:0;margin-top:4px}
.day-panel{padding:20px 16px}
.slot-time{width:52px;min-width:52px;font-size:17px}
.slot-time small{font-size:9px}
.booking-card-top strong{font-size:16px}
.slot-toolbar .button{font-size:13px}
.vacant{padding:16px 12px}
.date-icon{width:57px;min-width:57px}
.calendar-cell{min-height:97px;padding:5px 2px;font-size:11px}
.calendar-staff{font-size:9px}
.calendar-grid{gap:2px}
.legend{font-size:11px;gap:10px}
.calendar-panel{padding:20px 10px}
.calendar-header h2{font-size:19px}
.detail-title{align-items:flex-start;flex-wrap:wrap}
.detail-actions .button{font-size:13px;padding:8px 12px}
.search-form{flex-wrap:wrap}
.search-form input{flex-basis:100%}
.search-form select{flex:1;max-width:none}
.result-row{gap:12px;flex-wrap:wrap}
.result-date{font-size:12px;min-width:95px;width:95px}
.result-main{font-size:14px}
.result-main small{font-size:12px}
.result-arrow{display:none}
.staff-cards{grid-template-columns:1fr}
.notice{font-size:13px}
.form-actions{justify-content:space-between}
.form-actions .button{font-size:14px;padding:10px 13px}
footer span{display:block;margin:5px 0 0}
.staff-strip{font-size:12px}
}


[data-manual-arrival][hidden]{display:none}
.arrival-picker small{line-height:1.55}
.slot-toolbar{align-items:center;gap:12px}
.slot-toolbar small{font-size:12px}

.participant-card{min-width:0;border:1px solid var(--border);border-radius:var(--radius-panel);padding:10px 18px 18px;margin:18px 0;background:var(--color-surface)}
.participant-card[hidden]{display:none}
.participant-card legend{padding:0 7px;font-size:14px;color:var(--color-ink-secondary);font-weight:var(--weight-medium)}
.participant-card-actions{display:flex;justify-content:flex-end;margin-bottom:5px}
.participant-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:16px}
.participant-grid>.wide,.participant-summary-grid>.wide{grid-column:1/-1}
.participant-add{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-top:12px}
.participant-add small{font-size:12px}
.participant-details{border-top:1px solid var(--border);padding:20px 0}
.participant-details h3 small{font-weight:var(--weight-regular);margin-left:10px}
.participant-summary{border:1px solid var(--border);border-radius:var(--radius-panel);padding:15px 18px;margin-top:12px;background:var(--color-surface)}
.participant-summary h4{margin:0 0 12px;overflow-wrap:anywhere}
.participant-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:0}
.participant-summary-grid dt{font-size:12px;color:var(--muted);margin-bottom:3px}
.participant-summary-grid dd{font-size:14px;margin:0;overflow-wrap:anywhere}
.button:disabled{opacity:.55;cursor:not-allowed}

@media(max-width:650px){.participant-grid{grid-template-columns:1fr 1fr}
.participant-grid>.field:first-child{grid-column:1/-1}
.participant-card{padding:8px 13px 15px}
.participant-summary{padding:14px}
.participant-summary-grid{grid-template-columns:1fr 1fr}
.participant-add{align-items:flex-start}
}

.dashboard-refresh,.dashboard-meta,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.dashboard-refresh{margin-bottom:16px}
.dashboard-refresh p{font-size:13px;color:var(--muted);margin:0;flex:1;min-width:180px}
.dashboard-meta{margin-bottom:18px;font-size:14px;color:var(--color-ink-secondary)}
.dashboard-meta small{margin-left:auto}
.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start}
.action-panel,.today-panel{padding:26px}
.section-heading h2{margin:0;font-size:22px}
.section-count{font-size:14px;color:var(--green);background:var(--pale);padding:3px 9px;border-radius:var(--radius-dialog);vertical-align:middle}
.action-card{border:1px solid var(--color-border);border-left:4px solid var(--color-muted);background:var(--color-surface-hover);border-radius:var(--radius-panel);padding:18px;margin-top:16px}
.action-card.action-high{border-color:var(--color-border-strong);border-left-color:var(--color-warning);background:var(--color-surface-hover)}
.action-card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.action-card-heading strong{font-size:18px}
.action-card h3{margin:10px 0 7px;overflow-wrap:anywhere}
.action-card p{font-size:14px;color:var(--color-ink-secondary);line-height:1.6;overflow-wrap:anywhere}
.dashboard-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:12px}
.dashboard-actions .button{padding:9px 13px;font-size:14px;min-height:44px}
.action-footer{border-top:1px solid var(--border);margin-top:22px;padding-top:18px;display:grid;gap:9px;font-size:14px}
.action-footer small{font-size:12px}
.today-booking{padding:18px 0;border-bottom:1px solid var(--border)}
.today-booking-top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.today-booking-top strong{font-size:20px}
.today-booking h3{margin:7px 0;overflow-wrap:anywhere}
.today-booking h3 a{color:var(--ink)}
.today-times{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:8px 0}
.badge.waiting_arrival{color:var(--color-accent);background:var(--color-surface-subtle)}
.badge.arrived{color:var(--color-ink-secondary);background:var(--color-surface-subtle)}
.badge.shooting{color:var(--color-warning);background:var(--color-warning-soft)}
.milestone-supplement{background:var(--color-surface-hover);border:1px solid var(--border);border-radius:var(--radius-panel);padding:12px 15px;margin-bottom:20px}
.milestone-supplement summary{font-size:14px;color:var(--green)}
.form-actions{flex-wrap:wrap}

@media(max-width:1000px){.dashboard-layout{gap:16px}
.action-panel,.today-panel{padding:20px}
.topbar nav{gap:17px}
}

@media(max-width:760px){.dashboard-layout{grid-template-columns:1fr}
.dashboard-meta small{margin-left:0}
.action-panel,.today-panel{padding:20px 16px}
.section-heading h2{font-size:20px}
.action-card{padding:15px}
.dashboard-refresh{align-items:flex-start}
.dashboard-heading-tools{width:100%;margin-left:0;justify-content:flex-start}
.voice-reminder-control{justify-content:flex-start}
.voice-reminder-control .fine{text-align:left}
}

.dashboard-heading{align-items:center;margin-bottom:8px}
.dashboard-heading h1{margin:0}
.dashboard-heading-tools{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.voice-reminder-control{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.voice-reminder-control .fine{max-width:230px;text-align:right}
.dashboard-heading .dashboard-refresh{margin:0}

.search-form.search-filters{display:grid;grid-template-columns:minmax(220px,2fr) minmax(130px,1fr) minmax(145px,1fr) minmax(145px,1fr) auto;align-items:end}
.search-form.search-filters .field{margin:0}
.search-form.search-filters select{max-width:none}
.search-submit{padding-bottom:1px}

@media(max-width:900px){.search-form.search-filters{grid-template-columns:1fr 1fr}
.search-form.search-filters .field:first-of-type{grid-column:1/-1}
.search-submit{align-self:end}
}

@media(max-width:520px){.search-form.search-filters{grid-template-columns:1fr}
.search-form.search-filters .field:first-of-type{grid-column:auto}
.search-submit .button{width:100%}
}

.staff-choice-list{border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:10px 12px;min-height:44px;background:var(--color-surface)}
.staff-choice-list>div{display:flex;flex-wrap:wrap;gap:8px 18px}
.staff-choice-list label{display:flex;align-items:center;gap:7px;margin:0;font-weight:var(--weight-regular);cursor:pointer}
.staff-choice-list input{margin:0}
.page-heading>.button-group{flex-wrap:wrap;justify-content:flex-end}

.today-booking-list{height:500px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:10px;margin-right:-10px}
.today-booking-list:focus-visible{outline:3px solid var(--color-muted);outline-offset:4px;border-radius:var(--radius-panel)}
.today-booking-list .empty-state{min-height:280px;display:grid;place-content:center}
.today-booking{padding:13px 14px;margin:0 0 9px;border:1px solid var(--border);border-left:5px solid var(--color-warning);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.today-booking.booking-handled{border-left-color:var(--color-accent);background:var(--color-surface-subtle)}
.today-booking-top strong{font-size:19px}
.today-booking-row{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.today-booking-info{min-width:0}
.today-booking h3{margin:3px 0}
.today-booking .fine{margin:0}
.today-booking .dashboard-actions{margin:0;flex-shrink:0}
.badge.waiting_arrival{color:var(--color-warning);background:var(--color-border);border:1px solid var(--color-warning)}
.badge.arrived{color:var(--color-ink);background:var(--color-border);border:1px solid var(--color-accent)}

@media(max-width:760px){.today-booking-list{height:60vh;padding-right:6px;margin-right:-6px}
.today-booking-row{align-items:flex-start;flex-direction:column}
.today-booking .dashboard-actions{margin-top:8px}
}


.account{position:relative;gap:0}

.account-trigger{display:flex;align-items:center;gap:8px;border:0;border-radius:999px;background:var(--pale);color:var(--green);padding:7px 12px;font-size:14px;line-height:1.4}

.account-trigger:hover,.account.open .account-trigger{background:var(--color-surface-subtle)}

.account-chevron{font-size:14px;transition:transform .15s}

.account.open .account-chevron{transform:rotate(180deg)}

.account-popover{position:absolute;right:0;top:calc(100% + 10px);z-index:30;width:min(320px,calc(100vw - 28px));padding:10px;background:var(--color-surface);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:none}

.account-popover[hidden]{display:none}

.account-settings summary{padding:9px 10px;border-radius:var(--radius-panel);font-weight:var(--weight-medium);color:var(--ink);list-style-position:inside}

.account-settings summary:hover{background:var(--color-surface-hover)}

.account-setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 10px 8px}

.account-setting-row>span{display:grid;gap:2px}

.account-setting-row strong{font-size:14px}

.account-setting-row small{font-size:11px}

.voice-setting-toggle{display:flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--muted);padding:4px;font-size:12px}

.voice-switch{position:relative;width:36px;height:20px;border-radius:var(--radius-dialog);background:var(--color-border-strong);transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast)}

.voice-switch i{position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--color-surface);box-shadow:none;transition:transform var(--motion-normal) var(--ease-standard),background-color var(--motion-fast)}

.voice-setting-toggle.enabled{color:var(--green);font-weight:var(--weight-medium)}

.voice-setting-toggle.enabled .voice-switch{background:var(--green)}

.voice-setting-toggle.enabled .voice-switch i{transform:translateX(16px)}

.account-setting-status{min-height:19px;margin:0;padding:0 10px 8px;font-size:11px;color:var(--muted)}

.account-logout{width:100%;border:0;border-top:1px solid var(--border);background:var(--color-surface);color:var(--color-ink-secondary);text-align:left;padding:11px 10px 7px;margin-top:4px}

.account-logout:hover{color:var(--color-danger)}


.dashboard-layout{align-items:stretch}

.action-panel,.today-panel{height:780px;display:flex;flex-direction:column;min-height:0;overflow:hidden}

.action-list,.today-booking-list{flex:1;min-height:0;height:auto;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:10px;margin-right:-10px}

.action-list:focus-visible,.today-booking-list:focus-visible{outline:3px solid var(--color-muted);outline-offset:-1px;border-radius:var(--radius-panel)}

.action-list .empty-state{min-height:100%;display:grid;place-content:center}

.action-footer,.today-panel>p:last-child{flex-shrink:0}

.today-panel>p:last-child{margin:12px 0 0}


@media(max-width:760px){.account-popover{position:fixed;right:14px;top:72px}
.action-panel,.today-panel{height:min(560px,70vh)}
.action-list,.today-booking-list{padding-right:6px;margin-right:-6px}
}


.schedule-layout{align-items:stretch}

.calendar-panel,.day-panel{height:520px;min-height:0;overflow:hidden}

.calendar-panel{display:flex;flex-direction:column;padding:22px 18px}

.calendar-header{margin-bottom:10px}

.weekdays{padding-bottom:6px}

.calendar-grid{flex:1;min-height:0;grid-auto-rows:minmax(0,1fr);gap:4px}

.calendar-cell{min-height:0;padding:3px;justify-content:center;font-size:12px;line-height:1}

.calendar-cell .day-number{margin:0}

.day-panel{display:flex;flex-direction:column;padding:22px}

.day-heading{margin-bottom:14px;flex-shrink:0}

.staff-strip{margin-bottom:9px;flex-shrink:0}

.day-note{margin-bottom:8px;flex-shrink:0}

.slot-toolbar{margin:9px 0;flex-shrink:0}

.slots{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:9px;margin-right:-9px}

.slots:focus-visible{outline:3px solid var(--color-muted);outline-offset:-1px;border-radius:var(--radius-panel)}

.slot-row{gap:12px;padding:10px 0}

.slot-time{width:76px;min-width:76px;padding-top:10px}

.same-time-add{display:block;margin-top:6px;padding:2px 0;font-size:11px;font-weight:var(--weight-regular);line-height:1.35}

.day-footer{margin-top:9px;flex-shrink:0}


@media(max-width:820px){.calendar-panel,.day-panel{height:520px}
.calendar-cell{min-height:0}
.calendar-panel{padding:18px 12px}
.day-panel{padding:18px 16px}
}

@media(max-width:520px){.calendar-grid{gap:2px}
.calendar-cell{min-height:0;padding:2px}
.slot-time{width:66px;min-width:66px}
.same-time-add{font-size:10px}
}


.account-popover{width:250px}

.account-menu-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;border:0;background:var(--color-surface);color:var(--ink);padding:11px 10px;border-radius:var(--radius-panel);text-align:left}

.account-menu-item:hover{background:var(--color-surface-hover);color:var(--green)}

.account-menu-item span{font-weight:var(--weight-medium)}

.account-menu-item small{font-size:11px}

.account-modal{width:min(620px,calc(100vw - 32px));max-height:min(700px,calc(100vh - 32px));padding:0;border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--color-surface);color:var(--ink);box-shadow:none}

.account-modal::backdrop{background:color-mix(in srgb,var(--color-ink) 40%,transparent);backdrop-filter:none}

.account-modal-card{padding:28px 30px}

.account-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--border);padding-bottom:18px}

.account-modal-header h2{font-size:24px;margin:0}

.account-modal-header .eyebrow{margin-bottom:3px}

.account-modal-close{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface);color:var(--muted);font-size:25px;line-height:1}

.account-modal-close:hover{color:var(--ink);border-color:var(--color-muted)}

.account-modal-body{min-height:210px;padding:24px 0 12px}

.account-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:25px}

.account-profile-grid>div{display:grid;gap:6px;padding:18px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface-hover)}

.account-profile-grid small{font-size:12px}

.account-profile-grid strong{font-size:17px;overflow-wrap:anywhere}

.account-setting-card{padding:18px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface-hover)}

.account-modal .account-setting-status{padding:8px 2px 0;min-height:28px}

.account-modal-actions{display:flex;justify-content:flex-end;border-top:1px solid var(--border);padding-top:18px}


.schedule-layout{grid-template-columns:minmax(330px,.82fr) minmax(500px,1.18fr)}

.calendar-panel,.day-panel{height:580px}

@media(max-width:1000px){.schedule-layout{grid-template-columns:minmax(300px,.84fr) minmax(420px,1.16fr)}
}

@media(max-width:820px){.schedule-layout{grid-template-columns:1fr}
.calendar-panel,.day-panel{height:580px}
}

@media(max-width:520px){.account-modal-card{padding:22px 19px}
.account-modal-body{min-height:190px}
.account-profile-grid{grid-template-columns:1fr}
.account-setting-card{align-items:flex-start}
.account-setting-card>span{max-width:190px}
}

/* Outdoor phase 1 */
.outdoor-summary{padding:28px;margin-bottom:24px}
.outdoor-history{padding:24px}
.outdoor-filter{padding:18px 24px}
.outdoor-filter .search-form label{display:grid;gap:4px;font-size:12px;color:var(--muted)}
.outdoor-project-row{border-left:4px solid var(--color-muted)}
.outdoor-project-form h2{margin-top:28px;padding-top:22px;border-top:1px solid var(--border)}
.outdoor-project-form h2:first-of-type{margin-top:18px}
.theme-history{background:var(--pale);border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:16px 18px;margin:18px 0}
.theme-history h3{margin-bottom:10px}
.theme-history span{display:flex;gap:16px;padding:6px 0;border-bottom:1px solid var(--color-border)}
.theme-history span:last-child{border-bottom:0}
.theme-history b{min-width:64px}
.checkbox-field{margin:15px 0}
.outdoor-staff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.outdoor-detail-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.7fr);gap:26px;align-items:start}
.outdoor-detail-layout .detail-main{padding:30px}
.outdoor-section{border-top:1px solid var(--border);padding-top:24px;margin-top:28px}
.assignment-list{display:grid;gap:10px}
.assignment-row{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid var(--border);border-radius:var(--radius-panel);padding:14px 16px}
.assignment-row>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.class-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.class-summary-grid a{border:1px solid var(--border);border-radius:var(--radius-panel);padding:12px;color:var(--ink);display:grid}
.class-summary-grid span{font-size:12px;color:var(--muted)}
.empty-state.compact{min-height:90px;padding:20px}
.outdoor-preview-layout{display:grid;grid-template-columns:minmax(280px,.55fr) minmax(0,1.45fr);gap:24px;align-items:start}
.outdoor-preview-layout>.panel{padding:24px}
.stat-line{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}
.table-scroll{max-height:560px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-panel)}
.table-scroll table{width:100%;border-collapse:collapse;white-space:nowrap}
.table-scroll th,.table-scroll td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}
.table-scroll th{position:sticky;top:0;background:var(--color-surface-hover);z-index:1}
.row-error{background:var(--amber-bg)}
.roster-preview-table .form-actions form{margin:0}
.roster-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}
.roster-class{padding:22px}
.student-list{display:grid}
.student-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 4px;border-top:1px solid var(--border);color:var(--ink)}
.student-row>span:first-child{display:grid}
.student-row small{font-size:11px;overflow-wrap:anywhere}
.student-row:hover{background:var(--color-surface-hover)}
.staff-card h2 .badge{font-size:11px;vertical-align:middle}

@media(max-width:900px){.outdoor-detail-layout,.outdoor-preview-layout{grid-template-columns:1fr}
.outdoor-staff-grid,.roster-groups{grid-template-columns:1fr}
.class-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.outdoor-filter .search-form{align-items:stretch}
}

@media(max-width:620px){.outdoor-staff-grid,.class-summary-grid{grid-template-columns:1fr}
.assignment-row,.student-row{align-items:flex-start}
.outdoor-detail-layout .detail-main,.outdoor-summary{padding:20px}
.page-heading .button-group{width:100%;overflow-x:auto}
}


/* Business navigation and refined outdoor workflow */
.container.with-business-sidebar{display:grid;grid-template-columns:210px minmax(0,1fr);gap:26px;align-items:start}

.with-business-sidebar>.messages{grid-column:1/-1;width:100%}

.business-sidebar{position:sticky;top:24px;padding:20px 14px;background:var(--color-surface);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:none}

.business-sidebar h2{font-size:18px;margin:0 8px 14px}
.business-sidebar .eyebrow{margin:0 8px 3px}

.business-sidebar nav{display:grid;gap:6px}
.business-sidebar nav a{display:block;padding:11px 12px;border-radius:var(--radius-panel);color:var(--color-ink-secondary)}

.business-sidebar nav a:hover{background:var(--color-surface-hover);color:var(--green)}
.business-sidebar nav a.active{background:var(--pale);color:var(--green);font-weight:var(--weight-medium)}

.business-content{min-width:0}
.business-content>.form-panel{max-width:950px}
.business-content .page-heading{margin-top:0}

.outdoor-reminder-setting{margin-top:14px;flex-wrap:wrap}
.outdoor-reminder-setting>span{flex:1;min-width:240px}
.outdoor-reminder-setting label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px}
.outdoor-reminder-setting input{width:70px!important;min-height:38px!important;padding:6px 8px!important;text-align:center}

.theme-choice-list{border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:12px 14px;background:var(--color-surface)}
.theme-choice-list>div{display:grid;gap:7px}
.theme-choice-list label{display:flex;align-items:center;gap:9px;margin:0;padding:7px 8px;border-radius:var(--radius-panel);font-weight:var(--weight-regular)}
.theme-choice-list label:hover{background:var(--pale)}

.roster-groups{grid-template-columns:1fr}
.roster-class{width:100%}

@media(max-width:900px){.container.with-business-sidebar{grid-template-columns:1fr;gap:16px}
.business-sidebar{position:static;padding:12px}
.business-sidebar h2,.business-sidebar .eyebrow{display:none}
.business-sidebar nav{display:flex;gap:7px;overflow-x:auto}
.business-sidebar nav a{white-space:nowrap;padding:9px 12px}
}

@media(max-width:520px){.outdoor-reminder-setting{align-items:flex-start}
.outdoor-reminder-setting>span{min-width:100%}
.outdoor-reminder-setting label{flex:1}
.container.with-business-sidebar{padding-top:18px}
}


/* Fixed-height business workspaces */
.day-heading-copy{min-width:0}
.day-heading-actions{margin-left:auto;align-self:center;flex-shrink:0}

.outdoor-project-index{height:580px;display:flex;flex-direction:column;min-height:0;overflow:hidden}

.outdoor-filter-toolbar{display:flex;align-items:flex-end;gap:12px;flex-shrink:0;padding-bottom:18px;border-bottom:1px solid var(--border)}

.outdoor-project-filters{flex:1;align-items:flex-end;margin:0}
.outdoor-project-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:8px;margin-right:-8px}

.outdoor-project-list:focus-visible{outline:3px solid var(--color-muted);outline-offset:-1px;border-radius:var(--radius-panel)}
.outdoor-project-list>.result-row:first-child{border-top:0}
.outdoor-project-list>.empty-state{height:100%;display:grid;place-content:center}

@media(min-width:901px){.with-business-sidebar:has(.schedule-layout) .business-sidebar,.with-business-sidebar:has(.outdoor-project-index) .business-sidebar{position:relative;top:auto;height:580px;min-height:580px}
}

@media(max-width:700px){.day-heading{align-items:flex-start;flex-wrap:wrap}
.day-heading-actions{width:100%;justify-content:flex-end}
.day-heading-actions .button{font-size:13px;padding:8px 12px}
.outdoor-filter-toolbar{align-items:stretch;flex-direction:column}
.outdoor-project-filters{margin:0}
.outdoor-filter-toolbar>.button{align-self:flex-end}
}


/* Traditional CRUD lists */
.management-toolbar{display:flex;align-items:flex-end;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--border)}

.management-filters{flex:1;align-items:flex-end;flex-wrap:wrap;margin:0}
.management-filters input{min-width:190px}
.management-filters select{max-width:170px}

.management-panel:has(>.management-list){height:580px;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.management-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:8px;margin-right:-8px}

.management-list>.result-row:first-child{border-top:0}
.management-row{min-width:0}
.management-row-link{display:flex;align-items:center;gap:18px;flex:1;min-width:0;color:var(--ink)}

.management-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.management-row-actions form,.detail-actions form{margin:0}

.management-count{margin:14px 0 0;color:var(--muted);font-size:13px}
.compact-panel-heading{border-bottom:1px solid var(--border);margin-bottom:22px;padding-bottom:18px}
.compact-panel-heading h1{font-size:24px;margin-bottom:5px}

.project-cancelled{opacity:.68;background:var(--color-surface-hover)}
.project-cancelled:hover{opacity:.9}

/* Booking search uses server-side pagination so the workspace never grows with the result count. */
.booking-search-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.booking-search-summary{flex-shrink:0;margin:10px 0 8px;color:var(--muted);font-size:13px}
.booking-search-results{flex:1;min-height:0;overflow:hidden}
.booking-search-results>.result-row:first-child{border-top:0}
.booking-search-results .result-row{padding:8px 0;gap:18px;line-height:1.35}
.booking-search-results .result-main{gap:1px}
.booking-search-results .result-main small{font-size:12px}
.booking-search-panel>.pagination{flex-shrink:0;margin:10px 0 0}

.booking-assignment-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.booking-staff-field .staff-choice-list{min-height:76px}
.booking-staff-field .staff-choice-list>div{display:grid;gap:6px}
.booking-staff-field small{line-height:1.45}

@media(min-width:901px){.booking-search-panel{height:580px}
.with-business-sidebar:has(.management-panel>.management-list) .business-sidebar,.with-business-sidebar:has(.booking-search-panel) .business-sidebar{position:relative;top:auto;height:580px;min-height:580px}
}

@media(max-width:700px){.management-toolbar{align-items:stretch;flex-direction:column}
.management-toolbar>.button,.management-toolbar>.button-group{align-self:flex-end}
.management-filters{margin:0}
.management-row{align-items:flex-start}
.management-row-link{align-items:flex-start}
.management-row-actions{width:100%;justify-content:flex-end}
.booking-assignment-grid{grid-template-columns:1fr}
}


/* Calendar booking counts and paged outdoor roster */
.calendar-cell.has-bookings{background:var(--color-surface-subtle);border-color:var(--color-border)}
.calendar-cell.has-bookings.selected{background:var(--color-surface-subtle);border-color:var(--color-accent);box-shadow:none}
.calendar-booking-count{margin-top:3px;color:var(--green);font-size:10px;font-weight:var(--weight-medium);line-height:1.2;white-space:nowrap}

.roster-panel{height:680px;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.roster-panel .management-toolbar,.roster-summary,.roster-pagination{flex-shrink:0}
.roster-table-wrap{flex:1;min-height:0;overflow-x:auto;overflow-y:hidden;margin-top:10px;border:1px solid var(--border);border-radius:var(--radius-panel)}
.roster-table{width:100%;border-collapse:collapse;table-layout:fixed}
.roster-table th,.roster-table td{height:42px;padding:8px 16px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
.roster-table th{height:44px;background:var(--color-surface-hover);color:var(--color-ink-secondary);font-size:13px;font-weight:var(--weight-medium)}
.roster-table th:nth-child(1){width:36%}
.roster-table th:nth-child(2){width:34%}
.roster-table th:nth-child(3){width:30%}
.roster-table td a{color:var(--ink)}
.roster-table tbody tr:hover{background:var(--color-surface-hover)}
.roster-table tbody tr:last-child td{border-bottom:0}
.roster-table .empty-state{padding:60px 20px}
.roster-pagination{margin:10px 0 0}
.roster-row-actions{display:flex;align-items:center;gap:8px}
.roster-row-actions form{margin:0}
.roster-row-actions .button{min-height:34px;padding:5px 12px}

.roster-upload-row{display:flex;align-items:flex-end;gap:14px;margin:20px 0}
.roster-upload-row .field{flex:1}
.roster-template-download{margin-bottom:27px}

@media(min-width:901px){.with-business-sidebar:has(.roster-panel) .business-sidebar{position:relative;top:auto;height:680px;min-height:680px}
}

@media(max-width:700px){.roster-panel{height:680px;padding:20px 16px}
.roster-panel .management-toolbar>.button-group{width:100%;justify-content:flex-end;overflow-x:auto}
.roster-table{min-width:600px}
.roster-upload-row{align-items:stretch;flex-direction:column}
.roster-template-download{align-self:flex-end;margin-bottom:0}
}

.business-detail-container{display:block}
.business-content-wide{width:100%;min-width:0}
.outdoor-project-detail{grid-template-columns:minmax(0,1.7fr) minmax(300px,.65fr)}

.outdoor-completion-entry{border-top:1px solid var(--border);margin-top:30px;padding-top:28px}
.outdoor-completion-button{width:100%;min-height:64px;border-radius:var(--radius-panel);font-size:18px;font-weight:var(--weight-medium);letter-spacing:.5px;box-shadow:none}

.photo-upload-workspace,.photo-batch-detail{padding:30px}
.photo-upload-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}
.photo-upload-heading h1{margin-bottom:6px}
.photo-upload-heading p{color:var(--muted);margin-bottom:0}
.photo-select-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:22px;margin:24px 0}
.photo-drop-zone{min-height:220px;border:2px dashed var(--color-border-strong);border-radius:var(--radius-panel);background:var(--color-surface-hover);padding:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast)}
.photo-drop-zone.dragging{border-color:var(--green);background:var(--pale)}
.photo-drop-zone>strong{font-size:20px}
.photo-drop-zone p{max-width:600px;color:var(--muted);margin:7px 0 18px}
.photo-drop-zone small{margin-top:15px}
.photo-batch-fields{border:1px solid var(--border);border-radius:var(--radius-panel);padding:22px;display:grid;gap:17px;align-content:start}
.photo-batch-fields label{display:grid;gap:7px;font-size:14px;color:var(--color-ink-secondary)}
.photo-selection-summary{display:flex;align-items:center;gap:28px;padding:15px 18px;background:var(--color-surface-hover);border-radius:var(--radius-panel)}
.photo-selection-summary .link-button{margin-left:auto}
.photo-upload-actions{display:flex;justify-content:flex-end;margin-top:18px}
.photo-upload-actions .button{min-width:240px}
.photo-progress-panel{border-top:1px solid var(--border);margin-top:28px;padding-top:28px}
.photo-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 0}
.photo-stat-grid>div{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface-hover);padding:14px 16px;display:grid;gap:3px}
.photo-stat-grid small{font-size:12px}
.photo-stat-grid strong{font-size:22px}
.photo-progress-track{height:13px;background:var(--color-surface-subtle);border-radius:999px;overflow:hidden;margin-top:18px}
.photo-progress-track>span{display:block;width:0;height:100%;background:var(--green);border-radius:inherit;transition:width .18s}
.photo-progress-meta{display:flex;justify-content:space-between;gap:15px;margin-top:8px;font-size:13px;color:var(--muted)}
.photo-retry-actions{display:flex;justify-content:flex-end;margin-top:15px}
.photo-queue-table-wrap{max-height:520px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-panel);margin-top:15px}
.photo-queue-table{width:100%;border-collapse:collapse;table-layout:fixed}
.photo-queue-table th,.photo-queue-table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;overflow-wrap:anywhere}
.photo-queue-table th{position:sticky;top:0;background:var(--color-surface-hover);z-index:1;color:var(--color-ink-secondary);font-size:13px}
.photo-queue-table th:nth-child(1){width:8%}
.photo-queue-table th:nth-child(2){width:31%}
.photo-queue-table th:nth-child(3){width:13%}
.photo-queue-table th:nth-child(4){width:13%}
.photo-queue-table th:nth-child(5){width:35%}
.photo-error-text{color:var(--color-danger);font-size:13px}
.recent-photo-batches{padding:26px 30px;margin-top:24px}
.recent-photo-batches .management-row>span{display:grid;gap:4px}
.recent-photo-batches .management-row>span:last-child{text-align:right;justify-items:end}
.photo-completeness{display:flex;align-items:center;gap:15px;border-radius:var(--radius-panel);padding:16px 18px;margin:22px 0}
.photo-completeness.complete{background:var(--pale);color:var(--color-accent)}
.photo-completeness.incomplete{background:var(--amber-bg);color:var(--amber)}
.photo-resume-panel{border:1px solid var(--color-border-strong);background:var(--color-surface-hover);border-radius:var(--radius-panel);padding:20px;margin:22px 0}
.photo-resume-panel h2{margin-bottom:5px}
.photo-resume-panel p{color:var(--color-ink-secondary)}
.photo-resume-panel>.button{margin-top:12px}
.batch-photo-table{max-height:none}
.button:disabled,.button[aria-disabled=true]{cursor:not-allowed;opacity:.55;box-shadow:none}
code{font-family:Consolas,'SFMono-Regular',monospace;font-size:.92em}

.photo-upload-persistent-warning{margin-top:20px}
.photo-upload-actions{align-items:center;gap:18px}
.photo-upload-actions .fine{margin:0 auto 0 0}
.photo-batch-list-panel{padding:26px 30px;margin-top:24px}
.management-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-panel)}
.management-table{width:100%;border-collapse:collapse;min-width:920px}
.management-table th,.management-table td{padding:13px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
.management-table th{background:var(--color-surface-hover);color:var(--color-ink-secondary);font-size:13px}
.management-table tbody tr:last-child td{border-bottom:0}
.management-table tbody tr[data-status="UPLOADING"]{background:var(--color-surface-hover)}
.management-table tbody tr[data-status="QUEUED"]{background:var(--color-surface-hover)}
.management-table .button-group{flex-wrap:wrap}
.badge.queued{background:var(--color-warning-soft);color:var(--color-warning)}
.photo-batch-list-table th:nth-child(1){width:24%}
.photo-batch-list-table th:nth-child(2){width:17%}
.photo-batch-list-table th:nth-child(3){width:13%}
.photo-batch-list-table th:nth-child(4){width:11%}
.photo-batch-list-table th:nth-child(5){width:11%}
.photo-batch-list-table th:nth-child(6){width:10%}

.photo-batch-control-actions{display:flex;justify-content:flex-end;gap:10px;margin:18px 0}
.photo-batch-control-actions form{margin:0}

.photo-segmentation-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0;padding:18px 20px;border:1px solid var(--color-border-strong);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.photo-segmentation-entry strong{font-size:18px}
.photo-segmentation-entry p{margin:4px 0 0;color:var(--muted)}
.photo-segmentation-entry .button{min-width:170px}

.project-segmentation-entry{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:24px 0;padding:25px 28px;border:1px solid var(--color-border-strong);background:var(--color-surface)}
.project-segmentation-entry h2{margin:5px 0 7px;font-size:24px}
.project-segmentation-entry p{max-width:760px;margin:0;color:var(--muted)}
.project-segmentation-entry>.button{min-width:210px}
.project-segmentation-facts{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:15px;color:var(--color-ink-secondary)}
.project-segmentation-facts span{padding:6px 10px;border-radius:var(--radius-panel);background:var(--color-surface);border:1px solid var(--color-border)}
.project-segmentation-facts .warning-text{color:var(--color-warning);border-color:var(--color-border-strong);background:var(--color-surface-hover)}
.button.disabled{opacity:.55;cursor:not-allowed;pointer-events:none;background:var(--color-surface-subtle);color:var(--color-muted)}

.project-segmentation-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:0 0 auto;max-width:420px}
.project-segmentation-actions .warning-text{color:var(--color-warning);font-size:14px}
.project-segmentation-actions .button-group{flex-wrap:wrap;justify-content:flex-end}

@media(max-width:750px){.project-segmentation-entry{align-items:flex-start;flex-direction:column}
.project-segmentation-entry>.button{width:100%}
.project-segmentation-actions{max-width:100%;align-items:flex-start}
.project-segmentation-actions .button-group{justify-content:flex-start}
}

.photo-detail-pause-warning{display:flex;align-items:flex-start;gap:16px;margin:0 0 24px;padding:20px 22px;border:2px solid var(--color-warning);border-radius:var(--radius-panel);background:var(--color-warning-soft);color:var(--color-warning);box-shadow:none}
.photo-detail-pause-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:var(--color-warning);color:var(--color-surface);font-size:23px;font-weight:750;line-height:1}
.photo-detail-pause-warning strong{display:block;font-size:20px;line-height:1.4;margin:1px 0 5px}
.photo-detail-pause-warning p{margin:0;color:var(--color-warning);font-size:15px}

.photo-upload-runtime{display:grid;grid-template-columns:repeat(5,minmax(135px,1fr)) minmax(170px,1.15fr);gap:10px;margin:18px 0 8px}
.photo-upload-runtime>div,.photo-upload-runtime>label{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.photo-upload-runtime small{font-size:12px;color:var(--muted)}
.photo-upload-runtime strong{font-size:15px}
.photo-upload-runtime select{padding:7px 9px;min-height:36px}
.photo-upload-runtime .state-warning{color:var(--color-warning)}
.photo-upload-runtime .state-good{color:var(--green)}

.photo-batch-live-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 20px}
.photo-batch-live-stats>div{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.photo-batch-live-stats small{font-size:12px;color:var(--muted)}
.photo-batch-live-stats strong{font-size:18px;color:var(--green)}

.photo-upload-mode-card{align-content:start}
.photo-upload-mode-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.upload-mode-help{position:relative;display:inline-flex}
.upload-mode-help-trigger{display:grid;place-items:center;width:19px;height:19px;padding:0;border:1px solid var(--color-muted);border-radius:50%;background:var(--color-surface);color:var(--green);font-size:12px;font-weight:var(--weight-medium);line-height:1;cursor:help}
.upload-mode-help-trigger:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.upload-mode-help-content{display:none;position:absolute;right:-4px;top:calc(100% + 9px);z-index:20;width:min(330px,calc(100vw - 48px));padding:14px 16px;border:1px solid var(--color-border-strong);border-radius:var(--radius-panel);background:var(--color-surface);color:var(--color-ink);box-shadow:none;font-size:13px;line-height:1.55}
.upload-mode-help-content>strong,.upload-mode-help-content>span{display:block}
.upload-mode-help-content>strong{margin-bottom:7px;color:var(--ink);font-size:14px}
.upload-mode-help-content>span+span{margin-top:6px}
.upload-mode-help:hover .upload-mode-help-content,.upload-mode-help:focus-within .upload-mode-help-content{display:block}

@media(max-width:1050px){.photo-upload-runtime{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:760px){.photo-select-grid{grid-template-columns:1fr}
.photo-upload-heading{flex-direction:column}
.photo-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.photo-stat-grid>div:last-child{grid-column:1/-1}
.photo-selection-summary{align-items:flex-start;flex-wrap:wrap;gap:10px 20px}
.photo-selection-summary .link-button{margin-left:0}
.photo-upload-actions .button{width:100%}
.photo-queue-table{min-width:760px}
.photo-upload-workspace,.photo-batch-detail,.recent-photo-batches{padding:20px 16px}
.photo-completeness{align-items:flex-start;flex-direction:column;gap:4px}
}

@media(max-width:760px){.photo-upload-runtime,.photo-batch-live-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.photo-upload-mode-card{grid-column:1/-1}
.photo-batch-live-stats>div:last-child{grid-column:1/-1}
}


/* Outdoor photo segmentation */
.segmentation-page{display:grid;gap:22px}
.segmentation-topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.segmentation-topbar h1{font-size:30px;margin:4px 0 7px}
.segmentation-topbar p{margin:0;color:var(--muted);max-width:760px}
.segmentation-toolbar,.photo-marker-panel{padding:24px 28px}
.segmentation-step-tabs{display:flex;gap:8px;margin-bottom:18px}
.segmentation-step-tabs a,.segmentation-step-tabs span{padding:9px 15px;border-radius:999px;background:var(--color-surface-subtle);color:var(--muted);font-size:14px}
.segmentation-step-tabs .active{background:var(--color-surface-subtle);color:var(--green);font-weight:var(--weight-medium)}
.segmentation-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.segmentation-summary-grid>div{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.segmentation-summary-grid small{font-size:12px;color:var(--muted)}
.segmentation-summary-grid strong{font-size:22px}
.segmentation-dirty-notice,.segmentation-completion{display:flex;align-items:center;gap:12px;margin-top:16px;padding:13px 16px;border-radius:var(--radius-panel);background:var(--color-warning-soft);color:var(--color-warning)}
.segmentation-dirty-notice.is-clean,.segmentation-completion.complete{background:var(--pale);color:var(--color-accent)}
.segmentation-completion.warning{background:var(--color-warning-soft);color:var(--color-warning)}
.segmentation-confirm{margin-top:16px}
.segmentation-rebuild-form{display:flex;justify-content:flex-end;margin-top:16px}
.segmentation-rebuild-form .button{min-width:210px}
.photo-marker-panel .section-heading{margin-bottom:18px}
.photo-marker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:15px}
.photo-marker-card{min-width:0;border:2px solid transparent;border-radius:var(--radius-panel);background:var(--color-surface-hover);overflow:hidden;box-shadow:none}
.photo-marker-card.is-marker{border-color:var(--color-warning);background:var(--color-surface-hover);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-on-dark) 18%,transparent)}
.photo-marker-preview{position:relative;display:block;width:100%;aspect-ratio:1/1;padding:0;border:0;background:var(--color-surface-subtle);overflow:hidden;cursor:zoom-in}
.photo-marker-preview img{display:block;width:100%;height:100%;object-fit:cover}
.photo-order{position:absolute;left:8px;bottom:8px;padding:3px 7px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-ink) 79%,transparent);color:var(--color-surface);font:var(--weight-medium) 12px/1.4 var(--font-numeric)}
.marker-ribbon{position:absolute;left:8px;top:8px;padding:5px 8px;border-radius:var(--radius-panel);background:var(--color-warning);color:var(--color-surface);font-size:12px;font-weight:var(--weight-medium);box-shadow:none}
.marker-ribbon:empty{display:none}
.photo-marker-meta{display:grid;gap:9px;padding:10px}
.photo-marker-meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.photo-marker-meta .button{width:100%;min-height:36px;padding:5px 8px}
.photo-segment-list{display:grid;gap:16px}
.photo-segment-card{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:240px;padding:20px}
.photo-segment-card.is-anomaly{border-color:var(--color-border-strong);background:var(--color-surface)}
.segment-marker-column{display:grid;align-content:start;gap:10px;padding-right:20px;border-right:1px solid var(--border)}
.segment-number{font-size:15px;font-weight:750}
.segment-marker-preview{display:grid;padding:0;border:1px solid var(--border);border-radius:var(--radius-panel);overflow:hidden;background:var(--color-surface-hover);color:var(--green);cursor:zoom-in}
.segment-marker-preview img{width:100%;height:150px;object-fit:cover}
.segment-marker-preview span{padding:8px;font-size:12px}
.segment-no-marker{display:grid;place-items:center;min-height:150px;border:1px dashed var(--color-warning);border-radius:var(--radius-panel);background:var(--color-warning-soft);color:var(--color-warning)}
.segment-content{padding-left:24px;min-width:0}
.segment-heading{display:flex;justify-content:space-between;gap:16px}
.segment-heading h2{margin-bottom:5px}
.segment-heading p{margin:0;color:var(--muted)}
.segment-current-student{display:grid;gap:4px;margin:18px 0;padding:13px 15px;border-radius:var(--radius-panel);background:var(--color-surface-subtle)}
.segment-current-student small{color:var(--muted)}
.segment-current-student strong{font-size:17px}
.segment-binding-control{position:relative}
.segment-binding-control label{display:grid;gap:6px;font-size:13px;color:var(--color-ink-secondary)}
.student-search-results{position:absolute;z-index:10;left:0;right:0;top:70px;max-height:260px;overflow:auto;border:1px solid var(--color-border-strong);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:none}
.student-search-results button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border:0;border-bottom:1px solid var(--border);background:var(--color-surface);text-align:left;color:var(--ink);cursor:pointer}
.student-search-results button:hover,.student-search-results button:focus{background:var(--color-surface-subtle)}
.student-search-results button small{color:var(--muted)}
.student-search-empty{display:block;padding:13px;color:var(--muted)}
.segment-binding-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}
.segment-binding-actions p{margin:0}
.photo-lightbox{width:min(96vw,1500px);height:min(94vh,980px);padding:0;border:0;border-radius:var(--radius-panel);background:var(--color-photo);color:var(--color-surface);box-shadow:none}
.photo-lightbox::backdrop{background:color-mix(in srgb,var(--color-ink) 85%,transparent)}
.photo-lightbox-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%}
.photo-lightbox-head,.photo-lightbox-actions{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-photo)}
.photo-lightbox-head{justify-content:space-between}
.photo-lightbox-head button{border:0;background:transparent;color:var(--color-surface);font-size:29px;cursor:pointer}
.photo-lightbox-stage{display:grid;grid-template-columns:64px minmax(0,1fr) 64px;min-height:0}
.photo-lightbox-image-wrap{display:grid;place-items:center;overflow:auto;padding:18px}
.photo-lightbox-image-wrap img{display:block;max-width:100%;max-height:100%;transform-origin:center;transition:transform .12s}
.photo-lightbox-nav{border:0;background:color-mix(in srgb,var(--color-ink) 50%,transparent);color:var(--color-surface);font-size:54px;cursor:pointer}
.photo-lightbox-nav:hover{background:color-mix(in srgb,var(--color-ink) 82%,transparent)}
.photo-lightbox-actions{justify-content:center}
.photo-lightbox-actions [data-lightbox-zoom]{min-width:52px;text-align:center}
.photo-lightbox-actions .button{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-surface)}

@media(max-width:900px){.segmentation-topbar{align-items:flex-start;flex-direction:column}
.photo-segment-card{grid-template-columns:180px minmax(0,1fr)}
}

@media(max-width:650px){.segmentation-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.segmentation-toolbar,.photo-marker-panel{padding:18px 15px}
.segmentation-dirty-notice{align-items:flex-start;flex-direction:column}
.photo-marker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.photo-segment-card{grid-template-columns:1fr;padding:15px}
.segment-marker-column{padding:0 0 16px;border-right:0;border-bottom:1px solid var(--border)}
.segment-content{padding:16px 0 0}
.photo-lightbox-stage{grid-template-columns:42px minmax(0,1fr) 42px}
.photo-lightbox-actions{flex-wrap:wrap}
}


/* Outdoor photo selection */
.segmentation-finish-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:28px;border:2px solid var(--color-border-strong);background:var(--color-surface)}
.segmentation-finish-card h2{margin:4px 0 6px}
.segmentation-finish-card p{margin:0;color:var(--muted);max-width:760px}
.segmentation-finish-card form{margin:0}
.segmentation-finish-button{min-width:260px;min-height:58px;font-size:17px}
.segmentation-finish-card>small{grid-column:1/-1;color:var(--color-warning)}

.selection-index-page,.selection-review-page{display:grid;gap:22px}
.selection-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.selection-page-heading h1{font-size:30px;margin:4px 0 7px}
.selection-page-heading p{margin:0;color:var(--muted)}
.selection-student-panel{padding:26px 28px}
.selection-student-panel .section-heading{align-items:flex-start;margin-bottom:18px}
.selection-student-table td:nth-child(2){display:grid;gap:3px}
.selection-status-not_started{background:var(--color-surface-subtle);color:var(--color-ink-secondary)}
.selection-status-in_progress{background:var(--color-warning-soft);color:var(--color-warning)}
.selection-status-completed{background:var(--color-surface-subtle);color:var(--color-accent)}

.selection-viewer{display:grid;grid-template-rows:auto auto minmax(420px,1fr) auto auto auto;gap:14px;min-height:calc(100vh - 175px);padding:4px 0 10px}
.selection-viewer-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px}
.selection-viewer-header h1{margin:2px 0 0;font-size:28px}
.selection-viewer-header>.button{justify-self:end}
.selection-counter{display:grid;justify-items:center}
.selection-counter strong{font-size:27px}
.selection-counter span{font-size:12px;color:var(--muted)}
.selection-progress-strip{display:flex;justify-content:center;gap:10px 24px;flex-wrap:wrap;padding:10px 16px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface-hover);color:var(--color-ink-secondary)}
.selection-photo-stage{position:relative;display:grid;place-items:center;min-height:420px;max-height:65vh;padding:16px;border-radius:var(--radius-panel);background:var(--color-photo);box-shadow:none;overflow:hidden}
.selection-photo-stage img{display:block;max-width:100%;max-height:calc(65vh - 32px);object-fit:contain}
.selection-original-link{position:absolute;right:13px;bottom:12px;padding:7px 11px;border-radius:var(--radius-panel);background:color-mix(in srgb,var(--color-ink) 78%,transparent);color:var(--color-surface);font-size:13px}
.selection-decision-panel{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(300px,1.25fr) minmax(260px,.9fr);align-items:center;gap:18px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface)}
.selection-decision-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.selection-decision{min-height:62px;border:2px solid;border-radius:var(--radius-panel);background:var(--color-surface);font-size:18px;font-weight:750;cursor:pointer;transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast)}
.selection-decision.reject{border-color:var(--color-danger);color:var(--color-danger)}
.selection-decision.reject:hover,.selection-decision.reject.active{background:var(--color-danger);color:var(--color-surface)}
.selection-decision.accept{border-color:var(--color-muted);color:var(--color-accent)}
.selection-decision.accept:hover,.selection-decision.accept.active{background:var(--color-accent);color:var(--color-surface)}
.selection-decision:disabled{opacity:.55;cursor:wait}
.selection-note-field{display:grid;gap:5px;color:var(--color-ink-secondary);font-size:13px}
.selection-note-field textarea{min-height:60px;resize:vertical}
.selection-note-field small{color:var(--muted)}
.selection-mouse-nav{display:flex;justify-content:flex-end;gap:10px}
.selection-mouse-nav .button{min-width:112px}
.selection-finish-bar{display:flex;align-items:center;justify-content:center;gap:16px;min-height:54px;padding:10px 16px;border-radius:var(--radius-panel);background:var(--color-surface-subtle);color:var(--color-accent)}
.selection-finish-bar form{margin:0}
.selection-finish-bar .button.primary{min-width:280px}
.selection-keyboard-note{text-align:center;color:var(--muted);font-size:12px;margin:0}

.selection-review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px}
.selection-review-toolbar>div{display:grid;gap:4px}
.selection-review-toolbar>div span{color:var(--muted)}
.selection-review-toolbar nav{display:flex;gap:8px;flex-wrap:wrap}
.selection-review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:17px}
.selection-review-card{padding:0;overflow:hidden}
.selection-thumbnail{display:block;width:100%;aspect-ratio:4/3;padding:0;border:0;background:var(--color-surface-subtle);cursor:zoom-in;overflow:hidden}
.selection-thumbnail img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s}
.selection-thumbnail:hover img{transform:none}
.selection-review-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}
.selection-review-meta strong{overflow-wrap:anywhere}
.selection-review-meta p{grid-column:1/-1;margin:0;color:var(--muted);font-size:13px}
.selection-product-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:14px 16px}
.selection-product-list>strong,.selection-product-list>[data-product-save-status]{grid-column:1/-1}
.selection-product-list label{display:flex;align-items:center;gap:8px;padding:8px 9px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface-hover);cursor:pointer}
.selection-product-list label:has(input:checked){border-color:var(--color-muted);background:var(--color-surface-subtle);color:var(--color-accent)}
.selection-product-list input{width:17px;height:17px}
.selection-product-list small{color:var(--muted)}
.selection-preview-dialog{width:min(94vw,1400px);height:min(92vh,940px);padding:0;border:0;border-radius:var(--radius-panel);background:var(--color-photo);color:var(--color-surface);box-shadow:none}
.selection-preview-dialog::backdrop{background:color-mix(in srgb,var(--color-ink) 85%,transparent)}
.selection-preview-dialog>div{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%}
.selection-preview-dialog header,.selection-preview-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--color-photo)}
.selection-preview-dialog header button{border:0;background:transparent;color:var(--color-surface);font-size:29px;cursor:pointer}
.selection-preview-dialog main{display:grid;place-items:center;min-height:0;padding:18px;overflow:auto}
.selection-preview-dialog img{display:block;max-width:100%;max-height:100%}
.selection-preview-dialog footer{justify-content:flex-end}
.selection-preview-dialog .button{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-surface)}
.product-management-panel{display:grid;gap:16px}

@media(max-width:900px){.segmentation-finish-card{grid-template-columns:1fr}
.segmentation-finish-button{width:100%}
.selection-page-heading{align-items:flex-start;flex-direction:column}
.selection-decision-panel{grid-template-columns:1fr}
.selection-mouse-nav{justify-content:center}
.selection-review-toolbar{align-items:flex-start;flex-direction:column}
}

@media(max-width:650px){.selection-viewer-header{grid-template-columns:1fr auto}
.selection-viewer-header>.button{grid-column:1/-1;justify-self:stretch}
.selection-photo-stage{min-height:330px}
.selection-decision-actions{grid-template-columns:1fr 1fr}
.selection-mouse-nav .button{min-width:0;flex:1}
.selection-review-grid{grid-template-columns:1fr}
.selection-review-toolbar{padding:15px}
.selection-product-list{grid-template-columns:1fr}
}


/* Product categories and category-first product selection */
.product-management-panel{gap:24px;padding:28px 30px}
.product-management-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px}
.product-management-heading h1{margin:2px 0 6px}
.product-management-heading p{max-width:720px;margin:0;color:var(--muted)}
.product-management-heading .button-group{flex-wrap:wrap;justify-content:flex-end}
.product-filter-bar{display:grid;grid-template-columns:minmax(250px,1fr) minmax(170px,210px) minmax(130px,160px) auto;align-items:center;gap:12px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.product-filter-bar label{min-width:0}
.product-filter-bar .button{min-width:92px}
.product-table-wrap{overflow-x:auto}
.product-management-table{min-width:760px;table-layout:fixed}
.product-management-table th:nth-child(1){width:14%}
.product-management-table th:nth-child(2){width:8%}
.product-management-table th:nth-child(3){width:22%}
.product-management-table th:nth-child(4){width:25%}
.product-management-table th:nth-child(5){width:11%}
.product-management-table th:nth-child(6){width:10%}
.product-management-table th:nth-child(7){width:10%}
.product-management-table td{overflow-wrap:anywhere}
.product-category-table{min-width:620px;table-layout:fixed}
.product-category-table th:nth-child(1){width:12%}
.product-category-table th:nth-child(2){width:34%}
.product-category-table th:nth-child(3){width:18%}
.product-category-table th:nth-child(4){width:16%}
.product-category-table th:nth-child(5){width:20%}
.product-category-pill{display:inline-flex;align-items:center;min-height:27px;padding:3px 9px;border-radius:999px;background:var(--color-surface-subtle);color:var(--color-accent);font-size:12px;white-space:nowrap}

.selection-product-picker{display:block;padding:14px 16px}
.selection-product-picker>strong{display:block;margin-bottom:9px}
.selection-product-categories{display:flex;gap:7px;padding-bottom:10px;overflow-x:auto}
.selection-product-categories button{min-height:34px;padding:5px 11px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-ink-secondary);font-size:13px;white-space:nowrap}
.selection-product-categories button:hover{border-color:var(--color-muted)}
.selection-product-categories button.active{border-color:var(--green);background:var(--green);color:var(--color-surface)}
.selection-product-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.selection-product-options[hidden]{display:none}
.selection-product-picker>[data-product-save-status]{display:block;margin-top:10px}
.selection-product-picker label{min-width:0}
.selection-product-picker label span{overflow-wrap:anywhere}

@media(max-width:900px){.product-management-heading{align-items:flex-start;flex-direction:column}
.product-management-heading .button-group{align-self:flex-end}
.product-filter-bar{grid-template-columns:minmax(220px,1fr) minmax(160px,190px);}
.product-filter-bar .button{justify-self:end}
.product-filter-bar label:nth-child(3){grid-column:1/2}
}

@media(max-width:620px){.product-management-panel{padding:21px 16px}
.product-management-heading .button-group{width:100%;justify-content:flex-start;overflow-x:auto}
.product-filter-bar{grid-template-columns:1fr}
.product-filter-bar label:nth-child(3){grid-column:auto}
.product-filter-bar .button{width:100%}
.selection-product-options{grid-template-columns:1fr}
}


/* Outdoor project lifecycle */
.outdoor-project-lifecycle-trigger{width:100%;font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:transparent}
.outdoor-project-lifecycle-trigger:hover{background:var(--color-surface-hover)}
.outdoor-project-row-status{display:grid;justify-items:end;gap:5px;min-width:128px}
.outdoor-project-row-status .result-arrow{font-size:12px;color:var(--color-muted)}
.lifecycle-status{font-weight:var(--weight-medium)}
.lifecycle-status.preparing{background:var(--color-surface-subtle);color:var(--color-ink-secondary)}
.lifecycle-status.uploading{background:var(--color-surface-subtle);color:var(--color-accent)}
.lifecycle-status.segmenting{background:var(--color-warning-soft);color:var(--color-warning)}
.lifecycle-status.selecting{background:var(--color-surface-subtle);color:var(--color-accent)}
.lifecycle-status.completed{background:var(--color-surface-subtle);color:var(--color-accent)}
.project-lifecycle-dialog{width:min(92vw,720px);padding:0;border:0;border-radius:var(--radius-dialog);background:transparent;box-shadow:none}
.project-lifecycle-dialog::backdrop{background:color-mix(in srgb,var(--color-ink) 78%,transparent);backdrop-filter:none}
.project-lifecycle-card{padding:28px 30px;background:var(--color-surface);border-radius:var(--radius-dialog)}
.project-lifecycle-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--border)}
.project-lifecycle-card header h2{margin:2px 0 4px;font-size:26px}
.project-lifecycle-card header p{margin:0;color:var(--muted)}
.project-lifecycle-card header>button{width:40px;height:40px;border:0;border-radius:50%;background:var(--color-surface-subtle);color:var(--color-ink-secondary);font-size:27px;line-height:1}
.project-lifecycle-steps{list-style:none;margin:24px 0;padding:0 0 0 8px}
.project-lifecycle-steps li{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr);gap:14px;min-height:66px;padding:0 0 17px}
.project-lifecycle-steps li:not(:last-child)::after{content:'';position:absolute;left:7px;top:17px;bottom:-1px;width:2px;background:var(--color-border)}
.project-lifecycle-steps li.complete:not(:last-child)::after{background:var(--color-muted)}
.project-lifecycle-dot{position:relative;z-index:1;width:16px;height:16px;margin-top:4px;border:3px solid var(--color-surface);border-radius:50%;background:var(--color-border-strong);box-shadow:0 0 0 1px var(--color-border-strong)}
.project-lifecycle-steps .complete .project-lifecycle-dot{background:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}
.project-lifecycle-steps .current .project-lifecycle-dot{background:var(--color-warning);box-shadow:0 0 0 4px var(--color-border)}
.project-lifecycle-steps li>div{display:grid;gap:3px}
.project-lifecycle-steps strong{font-size:16px}
.project-lifecycle-steps small{font-size:13px}
.project-lifecycle-card footer{display:flex;justify-content:flex-end;gap:10px;padding-top:20px;border-top:1px solid var(--border)}

@media(max-width:620px){.outdoor-project-row-status{min-width:100px}
.outdoor-project-row-status .result-arrow{display:none}
.project-lifecycle-card{padding:22px 18px}
.project-lifecycle-card footer{align-items:stretch;flex-direction:column-reverse}
.project-lifecycle-card footer .button{width:100%}
}


/* Fast photo selection */
.selection-viewer-fullscreen{position:fixed;inset:0;z-index:600;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:0;min-height:100dvh;padding:0;background:var(--color-photo);color:var(--color-surface)}
.selection-fullscreen-header{display:grid;grid-template-columns:auto minmax(180px,1fr) auto auto;align-items:center;gap:22px;min-height:72px;padding:10px 22px;border-bottom:1px solid color-mix(in srgb,var(--color-on-dark) 11%,transparent);background:var(--color-photo);box-shadow:none}
.selection-fullscreen-header>div:nth-child(2){display:grid;line-height:1.3}
.selection-fullscreen-header>div:nth-child(2) span{color:var(--color-border-strong);font-size:12px}
.selection-fullscreen-header>div:nth-child(2) strong{font-size:20px}
.selection-fullscreen-header .selection-counter{justify-items:end}
.selection-fullscreen-header .selection-counter strong{font-size:23px}
.selection-fullscreen-header .selection-counter span{color:var(--color-border-strong)}
.selection-fullscreen-exit,.selection-complete-button,.selection-quick-button,.selection-want-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 17px;border:1px solid color-mix(in srgb,var(--color-on-dark) 17%,transparent);border-radius:var(--radius-panel);background:color-mix(in srgb,var(--color-on-dark) 5%,transparent);color:var(--color-surface);font-weight:var(--weight-medium);white-space:nowrap}
.selection-fullscreen-exit:hover,.selection-quick-button:hover{border-color:color-mix(in srgb,var(--color-on-dark) 41%,transparent);background:color-mix(in srgb,var(--color-on-dark) 9%,transparent)}
.selection-complete-button{border-color:var(--color-muted);background:var(--color-surface-subtle);color:var(--color-accent)}
.selection-complete-button:hover{background:var(--color-surface)}
.selection-fullscreen-header form{margin:0}
.selection-fullscreen-stage{height:100%;min-height:0;max-height:none;padding:0;border-radius:0;background:var(--color-photo);box-shadow:none}
.selection-fullscreen-stage img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}
.selection-fullscreen-stage .selection-original-link{right:18px;bottom:14px;background:color-mix(in srgb,var(--color-ink) 86%,transparent)}
.selection-quick-toolbar{display:grid;grid-template-columns:minmax(480px,1fr) minmax(260px,.72fr) minmax(260px,.62fr);align-items:center;gap:20px;min-height:108px;padding:12px 22px;border-top:1px solid color-mix(in srgb,var(--color-on-dark) 11%,transparent);background:var(--color-photo);box-shadow:none}
.selection-quick-nav{display:flex;align-items:center;justify-content:center;gap:12px}
.selection-quick-button{min-width:122px}
.selection-quick-button.disabled{opacity:.38;cursor:default}
.selection-quick-button:disabled,.selection-want-button:disabled{opacity:.55;cursor:wait}
.selection-want-button{min-width:190px;min-height:68px;border-color:var(--color-muted);background:var(--color-accent);color:var(--color-surface);font-size:23px;box-shadow:none}
.selection-want-button:hover,.selection-want-button.active{background:var(--color-accent);border-color:var(--color-border-strong)}
.selection-quick-hint{color:var(--color-border-strong);font-size:13px;line-height:1.6}
.selection-quick-note{grid-template-columns:auto minmax(130px,1fr);align-items:center;gap:5px 9px;color:var(--color-border-strong)}
.selection-quick-note textarea{min-height:58px;max-height:82px;padding:7px 9px;resize:none;border:1px solid color-mix(in srgb,var(--color-on-dark) 19%,transparent);border-radius:var(--radius-panel);background:color-mix(in srgb,var(--color-on-dark) 4%,transparent);color:var(--color-surface)}
.selection-quick-note textarea::placeholder{color:var(--color-muted)}
.selection-quick-note small{grid-column:2;color:var(--color-muted)}
.selection-product-choice{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.selection-product-choice.assigned{border-color:var(--color-muted);background:var(--color-surface-subtle)}
.selection-product-list .selection-product-choice>label:first-child{border:0;border-radius:0;background:transparent}
.selection-product-list .selection-product-choice>label:first-child:has(input:checked){border:0;background:var(--color-surface-subtle);color:var(--color-accent)}
.selection-product-remark{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:8px 9px!important;border:0!important;border-top:1px solid var(--color-border)!important;border-radius:0!important;background:var(--color-surface)!important;color:var(--color-ink-secondary)!important;cursor:text!important}
.selection-product-remark[hidden]{display:none!important}
.selection-product-remark input{width:100%;height:auto;min-height:38px;padding:6px 9px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);color:var(--ink)}

@media(max-width:1050px){.selection-fullscreen-header{grid-template-columns:auto minmax(140px,1fr) auto}
.selection-fullscreen-header form{display:none}
.selection-quick-toolbar{grid-template-columns:1fr minmax(250px,.55fr)}
.selection-quick-hint{display:none}
.selection-quick-note{min-width:0}
}

@media(max-width:700px){.selection-fullscreen-header{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;min-height:62px;padding:8px 10px}
.selection-fullscreen-header>div:nth-child(2) span{display:none}
.selection-fullscreen-header>div:nth-child(2) strong{font-size:17px}
.selection-fullscreen-header .selection-counter span{display:none}
.selection-fullscreen-exit{min-height:38px;padding:6px 10px;font-size:13px}
.selection-quick-toolbar{display:block;min-height:92px;padding:10px}
.selection-quick-nav{gap:7px}
.selection-quick-button{min-width:0;flex:1;padding:7px 9px;font-size:13px}
.selection-want-button{min-width:110px;min-height:58px;font-size:20px}
.selection-quick-note{display:none}
}

.selection-product-options>.selection-product-choice.assigned{grid-column:1/-1}


.selection-preview-decision-area{display:grid;grid-template-columns:auto minmax(180px,1fr);align-items:center;gap:2px 12px;margin-right:auto;text-align:left}
.selection-preview-decision-area>[data-preview-decision-help]{max-width:430px;color:var(--color-border-strong);font-size:13px;line-height:1.45}
.selection-preview-decision-area>[data-preview-decision-status]{grid-column:1/-1;min-height:20px;color:var(--color-border);font-size:12px}
.selection-preview-dialog footer>.button-group{flex-shrink:0}
.selection-preview-dialog .selection-preview-decision-area .button.primary{border-color:var(--color-accent);background:var(--green);color:var(--color-surface)}
.selection-preview-dialog .selection-preview-decision-area .button.primary:hover{background:var(--green-dark)}
.selection-preview-dialog .amber-button{border-color:var(--color-warning);background:var(--color-ink);color:var(--color-border)}
.selection-preview-dialog .amber-button:hover{border-color:var(--color-warning);background:var(--color-ink)}

@media(max-width:760px){.selection-preview-dialog footer{align-items:stretch;flex-direction:column}
.selection-preview-decision-area{grid-template-columns:1fr}
.selection-preview-decision-area>[data-preview-decision-status]{grid-column:auto}
.selection-preview-dialog footer>.button-group{justify-content:flex-end}
}


/* Immersive selection controls */
.selection-viewer-fullscreen{display:block;min-height:100dvh;overflow:hidden}
.selection-fullscreen-stage{position:absolute;inset:0;width:100%;height:100%;min-height:0}
.selection-fullscreen-header{position:absolute;z-index:4;top:10px;left:10px;right:10px;display:flex;align-items:flex-start;justify-content:space-between;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;pointer-events:none}
.selection-floating-cluster{display:flex;align-items:center;gap:10px;min-height:48px;padding:5px;border:1px solid color-mix(in srgb,var(--color-on-dark) 13%,transparent);border-radius:var(--radius-panel);background:color-mix(in srgb,var(--color-ink) 72%,transparent);box-shadow:none;backdrop-filter:none;pointer-events:auto}
.selection-fullscreen-header .selection-floating-left,.selection-fullscreen-header .selection-floating-right{display:flex}
.selection-floating-identity{display:grid;min-width:110px;padding:0 8px 0 2px;line-height:1.2}
.selection-floating-identity span{color:var(--color-border-strong);font-size:11px}
.selection-floating-identity strong{font-size:16px}
.selection-fullscreen-exit,.selection-complete-button{min-height:36px;padding:5px 11px;border-radius:var(--radius-panel);font-size:13px}
.selection-fullscreen-header .selection-counter{min-width:68px;padding:0 5px;justify-items:end}
.selection-fullscreen-header .selection-counter strong{font-size:18px;line-height:1.1}
.selection-fullscreen-header .selection-counter span{font-size:10px}
.selection-quick-toolbar{position:absolute;z-index:4;left:0;right:0;bottom:11px;display:block;width:auto;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;pointer-events:none}
.selection-quick-nav{width:max-content;max-width:calc(100vw - 160px);margin:auto;padding:5px;border:1px solid color-mix(in srgb,var(--color-on-dark) 13%,transparent);border-radius:var(--radius-panel);background:color-mix(in srgb,var(--color-ink) 73%,transparent);box-shadow:none;backdrop-filter:none;pointer-events:auto}
.selection-quick-button{min-width:82px;min-height:36px;padding:5px 10px;border-radius:var(--radius-panel);font-size:13px}
.selection-want-button{min-width:94px;min-height:42px;padding:5px 15px;border-radius:var(--radius-panel);font-size:18px;box-shadow:none}
.selection-quick-hint{display:none}
.selection-note-popover{position:absolute;right:12px;bottom:0;pointer-events:auto}
.selection-note-popover summary{display:flex;align-items:center;justify-content:center;min-width:58px;min-height:38px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--color-on-dark) 13%,transparent);border-radius:var(--radius-panel);background:color-mix(in srgb,var(--color-ink) 73%,transparent);color:var(--color-surface);font-size:13px;box-shadow:none;backdrop-filter:none;list-style:none}
.selection-note-popover summary::-webkit-details-marker{display:none}
.selection-note-popover[open] .selection-quick-note{position:absolute;right:0;bottom:calc(100% + 8px);display:grid;width:310px;padding:12px;border:1px solid color-mix(in srgb,var(--color-on-dark) 15%,transparent);border-radius:var(--radius-panel);background:color-mix(in srgb,var(--color-ink) 93%,transparent);box-shadow:none;backdrop-filter:none}
.selection-note-popover:not([open]) .selection-quick-note{display:none}
.selection-note-popover .selection-quick-note{grid-template-columns:1fr}
.selection-note-popover .selection-quick-note small{grid-column:1}
.selection-original-link{right:12px;bottom:62px;padding:5px 9px;font-size:12px;opacity:.82}
.selection-original-link:hover{opacity:1}

@media(max-width:700px){.selection-fullscreen-header{top:7px;left:7px;right:7px}
.selection-floating-cluster{min-height:42px;padding:4px}
.selection-floating-identity{min-width:0;padding-right:4px}
.selection-floating-identity span{display:none}
.selection-floating-identity strong{font-size:14px}
.selection-fullscreen-header .selection-counter{min-width:54px}
.selection-fullscreen-header .selection-counter strong{font-size:16px}
.selection-fullscreen-exit,.selection-complete-button{min-height:33px;padding:4px 8px}
.selection-quick-toolbar{bottom:7px}
.selection-quick-nav{max-width:calc(100vw - 86px);gap:4px;padding:4px}
.selection-quick-button{min-width:62px;padding:4px 7px}
.selection-want-button{min-width:72px;min-height:38px;padding:4px 10px;font-size:16px}
.selection-note-popover{right:7px}
.selection-note-popover summary{min-width:48px;padding:5px 7px}
.selection-note-popover[open] .selection-quick-note{width:min(290px,calc(100vw - 14px))}
.selection-original-link{right:7px;bottom:54px}
}

.selection-fullscreen-header>div.selection-floating-right{display:flex;align-items:center;min-height:48px;line-height:1.2}

.selection-fullscreen-header .selection-floating-right form{display:block;pointer-events:auto}

.selection-viewer-fullscreen .selection-original-link{top:50%;right:12px;bottom:auto;transform:translateY(-50%)}


/* Role-based account management */
.account-role-label{padding-left:8px;border-left:1px solid var(--color-border);color:var(--green);font-size:11px}
.user-management-page{display:grid;gap:20px}
.management-section-nav{display:flex;gap:8px;flex-wrap:wrap}
.management-section-nav a{padding:8px 16px;border:1px solid var(--border);background:var(--color-surface);border-radius:var(--radius-panel);color:var(--muted);font-size:14px}
.management-section-nav a.active{background:var(--green);border-color:var(--green);color:var(--color-surface)}
.user-management-panel{padding:28px 30px}
.user-management-panel .page-heading{margin-bottom:20px}
.user-filter-form{display:grid;grid-template-columns:minmax(200px,1fr) 150px 140px auto;gap:12px;margin-bottom:22px}
.user-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-panel)}
.user-table{width:100%;border-collapse:collapse;min-width:850px;text-align:left}
.user-table th{padding:12px 14px;background:var(--color-surface-hover);color:var(--color-ink-secondary);font-size:13px;font-weight:var(--weight-medium)}
.user-table td{padding:16px 14px;border-top:1px solid var(--border);font-size:14px;vertical-align:middle}
.user-table td>small{display:block;margin-top:3px}
.user-row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.user-row-actions form{margin:0}
.user-edit-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}
.user-edit-layout>section:only-child{max-width:850px;width:100%}
.user-audit-panel{padding:24px}
.user-audit-entry{display:grid;gap:4px;padding:14px 0;border-top:1px solid var(--border)}
.production-placeholder{max-width:840px;margin:35px auto;padding:55px 45px}
.production-placeholder h1{margin:20px 0 10px}
.production-placeholder>p{font-size:20px;color:var(--muted)}
.production-placeholder-note{border-top:1px solid var(--border);padding-top:22px;color:var(--muted);font-size:14px}
.permission-empty{max-width:680px;margin:40px auto}

.user-management-page{grid-template-columns:minmax(0,1fr)}
.user-management-panel,.user-table-wrap{min-width:0}
.user-edit-layout>section:only-child{grid-column:1/-1}
.user-management-panel .field:has(input[name=is_active]){grid-column:1/-1}

@media(max-width:950px){.user-edit-layout{grid-template-columns:1fr}
.user-filter-form{grid-template-columns:minmax(200px,1fr) 130px 120px auto}
.topbar{gap:25px}
.topbar nav{gap:22px}
}

@media(max-width:650px){.user-filter-form{grid-template-columns:1fr 1fr}
.user-filter-form>input{grid-column:1/-1}
.user-management-panel{padding:22px 16px}
.user-management-panel .page-heading{align-items:flex-start;flex-direction:column;gap:14px}
.production-placeholder{padding:30px 22px}
.account-role-label{display:none}
}


/* Unified administrator workspace */
.management-workspace{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:start}
.management-sidebar{position:sticky;top:24px;padding:24px 14px}
.management-sidebar>.eyebrow,.management-sidebar>h2,.management-sidebar>p{padding:0 8px}
.management-sidebar>p{font-size:12px;color:var(--muted);margin-bottom:22px}
.management-sidebar .management-section-nav{display:grid;gap:8px}
.management-sidebar .management-section-nav a{display:grid;gap:3px;padding:13px 14px;border-color:transparent;background:transparent;color:var(--ink);font-size:15px}
.management-sidebar .management-section-nav a>span{font-size:11px;color:var(--muted)}
.management-sidebar .management-section-nav a.active{background:var(--color-surface-subtle);color:var(--green);font-weight:var(--weight-medium)}
.management-sidebar .management-section-nav a.active>span{color:var(--color-accent);font-weight:var(--weight-regular)}
.management-sidebar .management-section-nav a:hover{background:var(--color-surface-subtle)}
.management-content{min-width:0}
.management-content[aria-busy=true]{opacity:.65}
.management-content .management-panel{height:auto;min-height:580px}
.management-content .management-list{max-height:520px}
.management-form-panel{padding:28px 30px;min-width:0}
.management-form-panel .field:has(input[type=checkbox]:only-child){min-width:0}
.management-settings{display:grid;gap:22px}
.management-settings h2{margin-top:26px}
.management-settings>section+section h2{margin-top:0}
.management-reminder-form{display:flex;gap:18px;align-items:flex-end;margin-top:24px}
.management-reminder-form label{display:grid;gap:7px;max-width:200px;font-size:14px;color:var(--muted)}
.management-content .management-toolbar{align-items:stretch;flex-wrap:wrap}
.management-content .management-toolbar>.button{align-self:flex-end}
.management-content .management-filters{flex-wrap:wrap}
.management-content .management-filters>input{min-width:150px}
.management-content .management-filters>select{flex:1;min-width:100px}
.management-content .user-edit-layout{grid-template-columns:minmax(0,1fr)}

.workbench-sidebar{top:18px}
.workbench-content,.workbench-single{min-width:0}

@media(max-width:1000px){.management-workspace{grid-template-columns:180px minmax(0,1fr);gap:18px}
.management-content .user-filter-form{grid-template-columns:1fr 1fr}
.management-content .user-filter-form>input{grid-column:1/-1}
.management-form-panel{padding:24px}
.management-content .product-filter-bar{grid-template-columns:1fr 1fr}
.management-content .product-search-field{grid-column:1/-1}
.management-content .product-management-heading{align-items:flex-start;flex-direction:column}
}

@media(max-width:800px){.management-workspace{grid-template-columns:1fr}
.management-sidebar{position:static;padding:14px}
.management-sidebar>.eyebrow,.management-sidebar>h2,.management-sidebar>p{display:none}
.management-sidebar .management-section-nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.management-sidebar .management-section-nav a{padding:10px;font-size:13px}
.management-sidebar .management-section-nav a>span{display:none}
}

@media(max-width:520px){.management-sidebar .management-section-nav{grid-template-columns:1fr 1fr}
.management-form-panel{padding:22px 16px}
.management-reminder-form{align-items:stretch;flex-direction:column}
}

/* Production center: compact metadata, readable requirements, photographs on demand. */
.production-workspace{max-width:1400px;margin:auto;display:grid;gap:22px}
.production-workspace>.back-link{margin:0}
.production-workspace .panel{margin:0;padding:28px}
.production-workspace label:not(.production-check):not(.production-upload-button){display:block}
.production-workspace textarea{display:block;width:100%}
.production-workspace form>label{margin-bottom:14px}
.production-workspace h1{margin:7px 0}
.production-workspace small{display:block;color:var(--muted,var(--color-muted));line-height:1.65}
.production-workspace strong,.production-workspace p{overflow-wrap:anywhere}
.production-state-tabs{display:flex;gap:8px;flex-wrap:wrap}
.production-state-tabs .button{padding:9px 13px;gap:8px}
.production-filters{display:grid;grid-template-columns:1.3fr .7fr 1fr auto;gap:12px;margin-bottom:22px}
.production-pagination{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:20px}
.production-check{display:flex!important;align-items:center;gap:9px;margin:12px 0;line-height:1.7}
.production-check input{width:17px!important;height:17px;flex:none}
.production-requirements-form{display:grid;gap:22px}
.production-handoff-confirm{display:flex;align-items:center;justify-content:space-between;gap:25px;background:var(--color-surface-subtle)}
.production-requirement-photos{display:grid;gap:20px;margin-top:20px}
.production-requirement-photos article{display:grid;grid-template-columns:150px 1fr;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--color-border)}
.production-requirement-photos img{width:150px;height:170px;object-fit:contain;background:var(--color-surface-subtle)}
.production-requirement-photos label{margin-top:10px}
.production-product-requirement{display:grid;grid-template-columns:1.2fr 100px 1fr 1fr;gap:18px;align-items:start;padding:20px 0;border-top:1px solid var(--color-border)}
.production-product-requirement textarea{width:100%}
.production-bulk-action{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.production-action-panel{display:grid;gap:15px}
.production-action-panel h2{margin:0}
.production-operation-form{padding:14px;background:var(--color-surface-hover);border-radius:var(--radius-panel)}
.production-revision-form summary,.production-admin-actions summary{cursor:pointer;font-weight:var(--weight-medium);padding:12px 0}
.production-revision-form form,.production-admin-actions form{display:grid;gap:12px}
.production-admin-actions{border-top:1px solid var(--color-border);color:var(--color-ink-secondary)}
.production-revision-form fieldset{max-height:220px;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-panel)}
.production-revisions{display:grid;gap:18px}
.production-revisions article{padding:16px;background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-panel)}
.production-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:15px;margin:20px 0}
.production-products article{padding:15px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.production-photo-grid,.production-asset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.production-photo-grid>article,.production-asset-grid>article{border:1px solid var(--color-border);border-radius:var(--radius-panel);overflow:hidden}
.production-photo-preview{border:0;padding:0;background:var(--color-surface-subtle);width:100%;cursor:zoom-in}
.production-photo-preview img{height:250px;width:100%;object-fit:contain;display:block}
.production-photo-meta{padding:16px;display:grid;gap:8px}
.production-photo-meta p{margin:0;font-size:14px;line-height:1.6}
.production-photo-meta .button{justify-self:start}
.production-upload-button{display:block;padding:10px;background:var(--color-surface-subtle);border:1px dashed var(--color-muted);border-radius:var(--radius-panel);cursor:pointer;font-size:14px}
.production-upload-button input{max-width:100%;font-size:12px;margin-top:7px;padding:4px}
.production-event-list{padding-left:24px}
.production-event-list li{padding:12px 0;border-bottom:1px solid var(--color-surface-subtle)}
.production-preview-dialog{width:min(96vw,1400px);height:95vh;max-height:95vh;padding:0;border:0;border-radius:var(--radius-panel);background:var(--color-photo);color:var(--color-on-dark)}
.production-preview-dialog::backdrop{background:color-mix(in srgb,var(--color-ink) 73%,transparent)}
.production-preview-dialog header{height:58px;padding:12px 20px;display:flex;justify-content:space-between;align-items:center;gap:15px}
.production-preview-dialog>img{width:100%;height:calc(100% - 58px);object-fit:contain}
.production-download-list{line-height:2;overflow-wrap:anywhere}
.production-download-list li{padding:8px 0;border-bottom:1px solid var(--color-surface-subtle)}

.workflow-confirm-dialog{width:min(92vw,560px);padding:0;border:0;border-radius:var(--radius-dialog);background:var(--color-surface);color:var(--ink);box-shadow:none}
.workflow-confirm-dialog::backdrop{background:color-mix(in srgb,var(--color-ink) 66%,transparent);backdrop-filter:none}
.workflow-confirm-card{display:grid;gap:17px;padding:28px}
.workflow-confirm-card h2{margin:5px 0 0;font-size:24px}
.workflow-confirm-card>p{margin:0;line-height:1.75}
.workflow-confirm-card .notice{margin:0}
.workflow-confirm-card form{display:flex;justify-content:flex-end;gap:10px;margin:0}
.photo-batch-list-heading{align-items:flex-end}
.photo-batch-scope{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.photo-batch-scope-note{margin:-8px 0 14px;color:var(--muted)}

.production-submit-form{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:start;gap:12px 20px}
.production-submit-summary{display:flex;gap:10px;flex-wrap:wrap}
.production-submit-summary span{padding:8px 12px;border-radius:999px;background:var(--color-surface-subtle);color:var(--color-ink)}
.production-submit-form .fine{grid-column:1/-1;margin:0}
.warning-text{color:var(--color-warning)!important}
.production-file-workflow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.production-file-workflow .panel{padding:24px}
.production-file-stage{position:relative;display:flex;flex-direction:column;gap:14px;min-width:0;border-top:4px solid var(--color-border-strong)}
.production-file-stage.stage-complete{border-top-color:var(--color-accent)}
.production-file-stage.stage-incomplete{border-top-color:var(--color-warning)}
.production-file-stage h2,.production-file-stage p{margin:0}
.production-file-stage>.button-group,.production-file-stage>.production-upload-button{margin-top:auto}
.production-stage-number{font-size:13px;font-weight:var(--weight-medium);letter-spacing:.08em;color:var(--color-accent)}
.section-heading.compact{margin:0;align-items:center}
.production-upload-button.small{padding:8px 10px;margin-top:8px}
.production-product-uploads{display:grid;gap:12px}
.production-product-upload-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:13px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.production-product-upload-row p{margin:7px 0;font-size:13px;line-height:1.55}
.production-product-upload-row>div:last-child{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.production-upload-status{min-height:24px;margin:0;padding:0 4px;color:var(--color-accent);font-weight:var(--weight-medium)}

.production-delivery-rows{display:grid;gap:18px}
.production-delivery-row{display:grid;grid-template-columns:minmax(250px,310px) minmax(0,1fr);gap:26px;align-items:start;min-width:0;border-left:4px solid var(--color-border-strong)}
.production-delivery-row.stage-complete{border-left-color:var(--color-accent)}
.production-delivery-row.stage-incomplete{border-left-color:var(--color-warning)}
.production-delivery-intro{display:grid;align-content:start;gap:14px;min-width:0}
.production-delivery-row>.production-delivery-intro{grid-column:1;grid-row:1}
.production-delivery-row>.production-column-file-list,.production-delivery-row>.production-product-column-list{grid-column:2;grid-row:1}
.production-delivery-row>.production-upload-progress{grid-column:1/-1;grid-row:2}
.production-delivery-row h2,.production-delivery-row p{margin:0}
.production-column-file-list,.production-product-column-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px;min-width:0}
.production-product-assets{display:grid;gap:14px}
.production-file-card{display:grid;grid-template-columns:minmax(170px,230px) minmax(0,1fr);align-items:stretch;min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-panel);overflow:hidden;background:var(--color-surface)}
.production-file-card.compact{margin-top:10px}
.production-delivery-row .production-photo-preview img{height:250px}
.production-file-card>.production-photo-preview,.production-file-card>.production-photo-preview img{height:100%;min-height:230px}
.production-product-card{display:grid;gap:9px;padding:15px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.production-product-card p{font-size:14px;line-height:1.6}
.production-product-source-list{display:flex;gap:10px;flex-wrap:wrap}
.production-product-source-list>div{width:92px}
.production-product-source-list img{display:block;width:92px;height:105px;object-fit:cover;border-radius:var(--radius-panel);background:var(--color-surface-subtle)}
.production-product-source-list small{text-align:center}
.production-revision-form>summary{font-size:18px}
.production-revision-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:16px 0}
.production-revision-card{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface)}
.production-revision-card .production-photo-preview img{height:300px}
.production-revision-card-body{display:grid;gap:11px;padding:15px}
.production-revision-card-body textarea{margin-top:6px}
.production-revision-history-grid{display:grid;gap:14px}
.production-revision-history-item{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;padding:13px;border-radius:var(--radius-panel);background:var(--color-surface)}
.production-revision-history-item>img{width:120px;height:140px;object-fit:cover;border-radius:var(--radius-panel)}
.production-reference-grid{display:flex;gap:9px;flex-wrap:wrap}
.production-reference-grid .production-photo-preview{width:90px;border-radius:var(--radius-panel);overflow:hidden}
.production-reference-grid .production-photo-preview img{width:90px;height:90px;object-fit:cover}
.production-legacy-files>summary{cursor:pointer;font-weight:var(--weight-medium);font-size:18px}

.production-upload-progress{display:grid;gap:7px;margin-top:12px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.production-upload-progress[hidden]{display:none}
.production-upload-progress-heading{font-size:14px}
.production-upload-progress-row{display:grid;grid-template-columns:minmax(0,1fr) 130px 112px;align-items:center;gap:10px;padding:8px 9px;border-radius:var(--radius-panel);background:var(--color-surface)}
.production-upload-progress-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.production-upload-progress-row progress{width:100%;height:9px;accent-color:var(--color-accent)}
.production-upload-progress-value{text-align:right;color:var(--color-ink-secondary);font-size:12px}
.production-upload-progress-row[data-state="success"] .production-upload-progress-value{color:var(--color-accent)}
.production-upload-progress-row[data-state="error"] .production-upload-progress-value{color:var(--color-danger)}
.production-product-asset-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface)}
.production-product-asset-row>div:first-child{display:grid;gap:5px;min-width:0}
.production-product-asset-row>div:first-child small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.production-product-asset-row .button-group{flex:none}
.production-active-revision{display:grid;gap:20px;border-left:4px solid var(--color-warning)}
.production-active-revision>.section-heading{margin:0}
.production-active-revision-grid{display:grid;gap:16px}
.production-active-revision-card{display:grid;grid-template-columns:minmax(240px,360px) minmax(0,1fr);overflow:hidden;border:1px solid var(--color-border-strong);border-radius:var(--radius-panel);background:var(--color-surface-hover)}
.production-active-revision-card>.production-photo-preview img{height:320px}
.production-active-revision-body{display:grid;align-content:start;gap:14px;padding:22px}
.production-active-revision-body>strong{font-size:18px}
.production-active-revision-body>p{font-size:17px;line-height:1.75}
.production-revision-upload-box{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(360px,1.3fr);gap:24px;padding:20px;border-radius:var(--radius-panel);background:var(--color-surface-subtle)}
.production-revision-upload-box h3,.production-revision-upload-box p{margin:0}
.production-revision-upload-box>div{display:grid;align-content:start;gap:10px}

@media(max-width:1100px){.production-file-workflow{grid-template-columns:1fr 1fr}
.production-file-stage:last-child{grid-column:1/-1}
.production-delivery-row{grid-template-columns:minmax(220px,270px) minmax(0,1fr)}
.production-column-file-list,.production-product-column-list{grid-template-columns:1fr}
}

@media(max-width:950px){.production-photo-grid,.production-asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.production-product-requirement{grid-template-columns:1fr 100px}
.production-filters{grid-template-columns:1fr 1fr}
.production-delivery-row{grid-template-columns:1fr}
.production-delivery-row>.production-delivery-intro,.production-delivery-row>.production-column-file-list,.production-delivery-row>.production-product-column-list,.production-delivery-row>.production-upload-progress{grid-column:1;grid-row:auto}
.production-delivery-intro{border-bottom:1px solid var(--color-border);padding-bottom:18px}
.production-active-revision-card,.production-revision-upload-box{grid-template-columns:1fr}
}
@media(max-width:620px){.production-photo-grid,.production-asset-grid,.production-filters,.production-file-workflow{grid-template-columns:1fr}
.production-file-stage:last-child{grid-column:auto}
.production-submit-form{grid-template-columns:1fr}
.production-submit-form .fine{grid-column:auto}
.production-product-upload-row{grid-template-columns:1fr}
.production-product-upload-row>div:last-child{align-items:flex-start}
.production-requirement-photos article{grid-template-columns:90px 1fr;gap:12px}
.production-requirement-photos img{width:90px;height:130px}
.production-handoff-confirm,.production-bulk-action{flex-direction:column;align-items:stretch}
.production-file-card{grid-template-columns:1fr}
.production-file-card>.production-photo-preview,.production-file-card>.production-photo-preview img{height:240px;min-height:0}
.production-upload-progress-row{grid-template-columns:minmax(0,1fr) auto}
.production-upload-progress-row progress{grid-column:1/-1;grid-row:2}
.production-product-asset-row{align-items:stretch;flex-direction:column}
.production-product-asset-row .button-group{align-self:flex-start}
.production-revision-history-item{grid-template-columns:1fr}
.production-revision-history-item>img{width:100%;height:220px}
}


@media(max-width:620px){.production-workspace .panel{padding:20px 16px}
}


.production-requirements-fields{display:grid;gap:22px;border:0;padding:0;margin:0;min-width:0}
.production-requirements-fields:disabled input,.production-requirements-fields:disabled textarea{color:var(--color-ink);background:var(--color-surface-subtle);opacity:1}

.production-script-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 18px;background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-panel);margin-bottom:12px}
.production-script-toolbar .button-group{flex-shrink:0}
.production-select-cell{width:74px;white-space:nowrap}
.production-select-cell input{width:17px!important;height:17px;accent-color:var(--color-accent);vertical-align:middle}
.production-select-cell .production-check{margin:0;font-size:13px}
.production-script-toolbar+[data-bulk-script-message]:empty{display:none}
@media(max-width:800px){.production-script-toolbar{align-items:stretch;flex-direction:column}
.production-script-toolbar .button-group{flex-wrap:wrap}
}

.production-project-search{display:flex;gap:12px;max-width:680px;margin-bottom:24px}
.production-project-search input{flex:1}
.production-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.production-project-card{display:block;padding:22px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);color:inherit;text-decoration:none;transition:border-color var(--motion-normal) var(--ease-standard)}
.production-project-card:hover{border-color:var(--color-muted);box-shadow:none;transform:none}
.production-project-card>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted,var(--color-muted))}
.production-project-card h2{margin:16px 0}
.production-project-card dl{display:grid;grid-template-columns:repeat(4,1fr);margin:0;border-top:1px solid var(--color-surface-subtle);border-bottom:1px solid var(--color-surface-subtle)}
.production-project-card dl div{padding:15px 8px}
.production-project-card dt{font-size:12px;color:var(--muted,var(--color-muted))}
.production-project-card dd{margin:5px 0 0;font-weight:var(--weight-medium)}
.production-project-open{display:block;margin-top:15px;text-align:right;color:var(--color-accent);font-weight:var(--weight-medium)}
.production-project-empty{grid-column:1/-1}
.production-filters-project{grid-template-columns:1.3fr .8fr auto}
@media(max-width:850px){.production-project-grid{grid-template-columns:1fr}
.production-project-card dl{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){.production-project-search{align-items:stretch;flex-direction:column}
}


.production-dashboard{display:grid;gap:22px}
.production-dashboard-heading{margin:0}
.production-dashboard-refresh{display:grid;text-align:right}
.production-dashboard-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.production-dashboard-stat{display:grid;gap:4px;padding:18px 20px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);color:var(--ink);box-shadow:none}
.production-dashboard-stat:hover,.production-dashboard-stat.active{border-color:var(--color-accent);background:var(--color-surface-hover)}
.production-dashboard-stat.active{box-shadow:none}
.production-dashboard-stat>span{color:var(--color-ink-secondary);font-weight:var(--weight-medium)}
.production-dashboard-stat>strong{font-size:30px;line-height:1.2}
.production-dashboard-stat>small{min-height:21px}
.production-dashboard-tasks,.production-dashboard-projects{padding:24px}
.production-dashboard-task-list{display:grid;gap:14px}
.production-work-card{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.75fr);overflow:hidden;border:1px solid var(--color-border);border-left:4px solid var(--color-muted);border-radius:var(--radius-panel);background:var(--color-surface)}
.production-work-card.revision-card{border-left-color:var(--color-warning);background:var(--color-surface)}
.production-work-card.alert-warning{border-left-color:var(--color-warning);background:var(--color-surface-hover)}
.production-work-card.alert-overdue{border-left-color:var(--color-danger);background:var(--color-surface-hover)}
.production-work-card-main,.production-work-card-meta{padding:18px 20px}
.production-work-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.production-work-card-title h3{margin:2px 0 0;font-size:21px}
.production-work-card-title .button-group{flex-wrap:wrap;justify-content:flex-end}
.production-work-thumbnails{display:flex;gap:8px;margin-top:13px}
.production-work-thumbnails a{width:76px;height:84px;border-radius:var(--radius-panel);overflow:hidden;background:var(--color-surface-subtle)}
.production-work-thumbnails img{width:100%;height:100%;object-fit:cover}
.production-work-requirements{margin-top:14px;padding:12px 14px;border-radius:var(--radius-panel);background:var(--color-surface)}
.production-work-requirements p{margin:5px 0 0;white-space:normal}
.production-work-card-meta{display:grid;grid-template-columns:1fr 1fr;align-content:center;gap:16px;border-left:1px solid var(--color-border);background:var(--color-surface)}
.production-work-card-meta>div:not(.production-work-card-actions){display:grid;align-content:start}
.production-work-card-meta strong{font-size:18px}
.production-work-card-meta span{font-size:13px;color:var(--muted)}
.production-work-card-actions{grid-column:1/-1;display:flex;gap:9px;flex-wrap:wrap}
.production-work-card-actions form{margin:0}
.production-alert-label.alert-warning{color:var(--color-warning)}
.production-alert-label.alert-overdue{color:var(--color-danger);font-weight:var(--weight-medium)}
.production-dashboard-projects .production-project-grid{margin-top:4px}


.production-settings-targets{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.production-working-days{margin:20px 0}
.production-working-days ul{display:flex;gap:9px;flex-wrap:wrap;padding:0;margin:8px 0;list-style:none}
.production-working-days label{display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-hover);font-weight:var(--weight-regular)}
.production-shift-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.production-shift-grid fieldset{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:14px}
.production-shift-grid legend{padding:0 7px;font-weight:var(--weight-medium)}
.production-shift-grid .field label{font-size:12px}
.production-revision-timeline{display:grid;gap:14px}
.production-revision-timeline-card{padding:17px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface)}
.production-revision-timeline-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.production-flow-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.production-flow-step{display:grid;align-content:start;gap:4px;padding:12px;border-radius:var(--radius-panel);background:var(--color-surface)}
.production-flow-step strong{font-size:14px}
.production-flow-step small{display:block}
.production-flow-duration{margin-top:8px;color:var(--color-ink-secondary);font-size:13px}


@media(max-width:1000px){.production-dashboard-summary{grid-template-columns:1fr 1fr}
.production-work-card{grid-template-columns:1fr}
.production-work-card-meta{border-left:0;border-top:1px solid var(--color-border)}
.production-flow-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:650px){.production-dashboard-summary,.production-settings-targets,.production-shift-grid,.production-flow-grid{grid-template-columns:1fr}
.production-work-card-meta{grid-template-columns:1fr}
.production-work-card-actions{grid-column:1}
.production-work-card-title{flex-direction:column}
.production-shift-grid fieldset{grid-template-columns:1fr}
.production-shift-grid fieldset>span{display:none}
.production-dashboard-refresh{text-align:left}
}


.selection-name-search{display:flex;align-items:flex-end;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin:0}
.selection-name-search label{display:grid;gap:6px;color:var(--muted);font-size:13px}
.selection-name-search input{box-sizing:border-box;width:240px;max-width:100%}
.selection-student-panel .section-heading{flex-wrap:wrap}
.selection-name-search .button{white-space:nowrap}

@media(max-width:620px){.selection-name-search{width:100%;justify-content:flex-start}
.selection-name-search label{flex:1 1 180px;min-width:0}
.selection-name-search input{width:100%}
}


/* Single-order walk-in workflow. */
.walkin-order-list .management-table{min-width:0;table-layout:fixed;width:100%}

.walkin-order-list .management-table th,.walkin-order-list .management-table td{padding:14px 8px;white-space:normal;overflow-wrap:anywhere}

.walkin-order-list .management-table th:nth-child(1){width:21%}
.walkin-order-list .management-table th:nth-child(2){width:15%}
.walkin-order-list .management-table th:nth-child(3){width:15%}
.walkin-order-list .management-table th:nth-child(4){width:7%}
.walkin-order-list .management-table th:nth-child(5){width:13%}
.walkin-order-list .management-table th:nth-child(6){width:12%}
.walkin-order-list .management-table th:nth-child(7){width:17%}

.walkin-order-list .management-table .badge{max-width:100%;white-space:normal;text-align:center}

.walkin-order-workflow{margin:24px 0;padding:24px;background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-dialog)}

.walkin-order-heading,.walkin-upload-heading,.walkin-current,.walkin-handoff{display:flex;align-items:center;justify-content:space-between;gap:20px}

.walkin-order-heading h2{margin:5px 0}
.walkin-steps{display:flex;list-style:none;padding:16px 0;margin:0;gap:8px;flex-wrap:wrap;color:var(--color-accent);font-size:13px}
.walkin-steps li+li:before{content:'→';margin-right:8px;color:var(--color-muted)}

.walkin-summary{display:flex;gap:24px;padding:14px 0;flex-wrap:wrap}
.walkin-summary strong{font-size:19px;color:var(--color-accent)}

.walkin-upload{background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-panel);padding:20px}
.walkin-upload p,.walkin-current p,.walkin-handoff p{font-size:13px;color:var(--color-ink-secondary);line-height:1.6}
.walkin-upload progress{width:100%;height:10px;accent-color:var(--color-accent)}
.walkin-upload-errors{max-height:180px;overflow:auto;font-size:13px;color:var(--color-danger)}
.walkin-next,.walkin-current,.walkin-factory-status,.walkin-product-summary{margin-top:20px}

.walkin-current{padding:18px;background:var(--color-surface);border-radius:var(--radius-panel)}
.walkin-handoff{margin:24px 0;padding:20px;background:var(--color-surface-hover);border-radius:var(--radius-panel)}
.walkin-order-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:18px 0}
.walkin-order-filters label{flex:1;min-width:140px}
.walkin-order-filters input,.walkin-order-filters select,.walkin-order-filters textarea{width:100%}
.walkin-requirements{max-width:1000px;margin:auto}
.walkin-requirement-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.walkin-requirement-photos label{padding:14px;background:var(--color-surface-hover);border-radius:var(--radius-panel);display:grid;gap:6px}
.walkin-requirement-photos span{font-size:12px;color:var(--color-muted)}
.walkin-product-requirement{border-bottom:1px solid var(--color-border);padding:14px 0}
.walkin-requirements textarea{width:100%}
.walkin-order-list .management-table small{display:block;color:var(--color-muted);margin-top:5px}

@media(max-width:760px){.walkin-order-workflow{padding:16px}
.walkin-order-heading,.walkin-upload-heading,.walkin-current,.walkin-handoff{align-items:flex-start;flex-direction:column}
.walkin-requirement-photos{grid-template-columns:1fr}
.walkin-order-filters label{min-width:calc(50% - 12px)}
}


/* Single-day scheduling lives in the workbench; the month picker is an overlay. */
.walkin-order-list{padding:26px}

.walkin-order-list>.section-heading{gap:20px;align-items:center}

.walkin-order-list .management-table-wrap{border:1px solid var(--border);border-radius:var(--radius-panel)}

.walkin-order-list>.pagination{margin-bottom:0}

.today-panel.schedule-panel{position:relative;overflow:visible;scroll-margin-top:20px}

.schedule-panel>.section-heading{gap:12px;align-items:center;margin-bottom:16px}

.schedule-panel>.section-heading h2{margin:0}

.schedule-date-toolbar{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) 34px auto;gap:6px;align-items:center;margin-bottom:10px;flex-shrink:0}

.schedule-date-toolbar>.icon-button{padding:6px;min-height:40px}

.schedule-date-picker{min-width:0}

.schedule-date-picker>summary{display:flex;justify-content:center;gap:8px;list-style:none;padding:8px 6px;font-size:14px;min-height:40px;white-space:normal;text-align:center}

.schedule-date-picker>summary::-webkit-details-marker{display:none}

.schedule-date-picker[open]>summary{border-color:var(--green);background:var(--pale)}

.schedule-calendar{position:absolute;top:calc(100% + 8px);right:0;width:min(360px,100%);max-height:min(510px,70vh);overflow-y:auto;padding:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:none;z-index:20}

.schedule-calendar .calendar-header{margin-bottom:12px;gap:8px}

.schedule-calendar .calendar-header h3{font-size:16px;margin:0}

.schedule-calendar .icon-button{min-height:32px;width:32px;padding:2px}

.schedule-calendar .button-group{gap:6px}

.schedule-calendar .weekdays{margin-bottom:4px;padding-bottom:4px;font-size:12px}

.schedule-calendar .calendar-grid{gap:4px}

.schedule-calendar .calendar-cell{min-height:44px;padding:2px 0;justify-content:center;border-radius:var(--radius-panel)}

.schedule-calendar .day-number{font-size:13px;width:24px;height:24px;margin-bottom:2px}

.schedule-calendar .calendar-booking-count{font-size:10px;line-height:1.3;white-space:nowrap}

.schedule-calendar>p{margin:12px 0 0;font-size:11px}

.schedule-day-caption{margin-bottom:12px;flex-shrink:0}

.schedule-staff{font-size:13px;margin-bottom:12px;color:var(--muted)}

.schedule-staff>summary{padding:8px 0;color:var(--green)}

.schedule-staff .staff-strip{margin:6px 0}

.schedule-staff .form-grid{grid-template-columns:1fr}

.schedule-same-time{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:4px}

.schedule-panel .today-booking-row{flex-wrap:wrap}

.schedule-panel .today-booking-info{min-width:0;overflow-wrap:anywhere}

@media(max-width:760px){.walkin-order-list{padding:20px 16px}
.schedule-calendar{padding:12px}
.schedule-date-toolbar{grid-template-columns:30px minmax(0,1fr) 30px auto;gap:4px}
.schedule-date-toolbar>.button{padding:8px}
.schedule-date-picker>summary{font-size:12px;gap:4px}
.schedule-panel>.section-heading h2{font-size:18px}
.schedule-panel>.section-heading>.button{padding:7px 9px;font-size:13px}
}


/* Walk-in workflow feedback: compact confirmations and readable file manifests. */
.inline-action-form{display:inline-flex;margin:0}

.walkin-upload>input[type="file"].sr-only{width:1px!important;max-width:1px!important;height:1px;padding:0;margin:0;border:0}

.walkin-requirements>.panel{padding:28px}

.walkin-requirements .section-heading{gap:18px;align-items:center}

.walkin-requirements .requirement-photo{display:grid;grid-template-columns:100px minmax(0,1fr);gap:16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface-hover);align-items:start}

.requirement-photo img{display:block;width:100px;height:100px;object-fit:contain;background:var(--color-surface-subtle);border-radius:var(--radius-panel)}

.requirement-photo strong{font-size:14px;overflow-wrap:anywhere}

.requirement-note{margin:9px 0 0;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--color-ink-secondary)}

.requirement-section-heading{margin:28px 0 14px}

.product-quantity{display:flex;align-items:center;gap:10px;font-size:14px;flex-shrink:0}
.product-quantity input{width:90px!important}

.requirement-order-note{display:block;margin-top:24px;font-size:14px}
.requirement-order-note textarea{margin-top:8px}

.workflow-notice-dialog{width:min(480px,calc(100vw - 32px));padding:32px;border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--color-surface);color:var(--ink);text-align:center;box-shadow:none}

.workflow-notice-dialog::backdrop{background:color-mix(in srgb,var(--color-ink) 82%,transparent)}
.workflow-notice-dialog h2{font-size:25px;margin:14px 0}
.workflow-notice-dialog .button-group{justify-content:center;flex-wrap:wrap;margin-top:22px}
.workflow-notice-dialog p{margin:12px 0}

.workflow-notice-mark{margin:auto;border-radius:50%;width:58px;height:58px;display:grid;place-items:center;font-size:32px;background:var(--pale);color:var(--green)}

.walkin-upload [hidden]{display:none!important}
.walkin-upload .notice{margin:16px 0}
.walkin-upload>.button-group{flex-wrap:wrap;margin:12px 0}

.walkin-file-list{list-style:none;padding:0;margin:12px 0;max-height:230px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--color-surface)}
.walkin-file-list:empty{display:none}

.walkin-file-list li{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 12px;border-bottom:1px solid var(--border);font-size:13px}
.walkin-file-list li:last-child{border-bottom:0}
.walkin-file-list span{overflow-wrap:anywhere;min-width:0}
.walkin-file-list small{white-space:nowrap;flex-shrink:0}

.walkin-saved-files{margin-top:18px}
.walkin-saved-files summary{font-size:14px;color:var(--green)}

.production-center-filters{display:flex;align-items:end;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.production-center-filters>label:first-child{flex:1;min-width:240px}
.production-center-filters label{font-size:14px}

.production-center-filters label{display:grid;gap:6px;margin:0}

.production-center-list .management-table{min-width:0;table-layout:fixed;width:100%;font-size:14px}
.production-center-list .management-table th,.production-center-list .management-table td{padding:12px 10px;overflow-wrap:anywhere}
.production-center-list .management-table th:nth-child(1){width:10%}
.production-center-list .management-table th:nth-child(2){width:27%}
.production-center-list .management-table th:nth-child(3){width:13%}
.production-center-list .management-table th:nth-child(4){width:11%}
.production-center-list .management-table th:nth-child(5){width:18%}
.production-center-list .management-table th:nth-child(6){width:12%}
.production-center-list .management-table th:nth-child(7){width:9%}
.production-center-list .badge{white-space:normal}
.production-center-list .management-table-wrap{border:1px solid var(--border);border-radius:var(--radius-panel)}

@media(max-width:760px){.walkin-requirements>.panel{padding:20px 16px}
.walkin-requirement-photos{grid-template-columns:1fr}
.walkin-requirements .section-heading{align-items:flex-start;flex-wrap:wrap}
.requirement-photo img{width:80px;height:80px}
.walkin-requirements .requirement-photo{grid-template-columns:80px minmax(0,1fr)}
.production-center-list .management-table{min-width:700px}
.workflow-notice-dialog{padding:24px}
}


/* Keep the extra dispatch navigation readable alongside the administrator menus. */
.topbar .brand,.topbar .account{flex-shrink:0}

.topbar .account-trigger{white-space:nowrap}

@media(max-width:1120px){.topbar{flex-wrap:wrap;gap:14px 24px}
.topbar nav{order:3;width:100%;flex-wrap:wrap;gap:14px 22px;justify-content:flex-start}
.topbar nav a.active:after{bottom:-6px}
}

.production-assignment-reminder{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px;padding:18px 22px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-subtle);color:var(--green-dark)}

.production-assignment-reminder:hover{border-color:var(--color-muted);background:var(--color-surface-subtle)}

.production-assignment-reminder strong{font-size:18px}
.production-assignment-reminder strong span{font-size:26px;margin:0 6px}

.production-assignment-reminder small{display:block;margin-top:3px}
.production-assignment-reminder-action{white-space:nowrap;font-weight:var(--weight-medium)}


.person-table th{white-space:nowrap}
.person-table td:nth-child(4),.person-table td:nth-child(5),.person-table td:nth-child(6),.person-table td:nth-child(7){white-space:nowrap}
.person-table td:nth-child(2){overflow-wrap:anywhere}


/* Photo product selection stays compact; notes live with each product in the dialog. */
.photo-product-trigger{padding:0 16px 18px;display:grid;gap:9px}
.photo-product-trigger small{color:var(--muted);overflow-wrap:anywhere}

.photo-products-dialog{width:min(760px,calc(100vw - 32px));max-height:85dvh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-dialog);padding:24px;color:var(--ink);box-shadow:none}

.photo-products-dialog::backdrop{background:color-mix(in srgb,var(--color-ink) 42%,transparent)}
.photo-products-dialog header{display:flex;align-items:start;justify-content:space-between;gap:16px}
.photo-products-dialog h2{margin:0 0 8px}
.photo-products-dialog .selection-product-picker{padding:12px 0}
.handoff-confirm-dialog{max-width:620px}
.handoff-confirm-dialog form{margin-top:24px}

.package-progress-list{list-style:none;padding:0;margin:16px 0}
.package-progress-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}
.package-progress-list li>div{display:grid;gap:6px}
.package-progress-list span{font-size:14px;color:var(--muted)}
.product-followup{margin:18px 0}
.product-followup form{max-width:600px}
.product-followup summary{cursor:pointer}

@media(max-width:620px){.photo-products-dialog{padding:18px}
.package-progress-list li{align-items:start;flex-direction:column}
}

