:root{--bg:#eef1f5;--bg-wash:#e3e8ef;--card:#ffffff;--text:#12161c;--muted:#5c6775;--border:#d0d7e1;--border-strong:#b7c1ce;--accent:#1c4a73;--accent-soft:rgba(28,74,115,0.09);--danger:#b42318;--ok:#1a7a4c;--radius:12px;--radius-sm:8px;--shadow-card:0 1px 1px rgba(18,22,28,0.03),0 12px 30px rgba(18,22,28,0.05);--shadow-elevated:0 2px 4px rgba(18,22,28,0.04),0 18px 40px rgba(18,22,28,0.08)}*{box-sizing:border-box}html{overflow:hidden}body,html{height:100%}body{margin:0;overflow-x:clip;overflow-y:auto;font-family:var(--font-sans),"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;background:radial-gradient(1100px 520px at 10% -14%,rgba(28,74,115,.1),transparent 56%),radial-gradient(900px 420px at 100% 0,rgba(92,110,130,.07),transparent 52%),linear-gradient(180deg,#f8fafc 0,var(--bg) 40%,var(--bg-wash) 100%);background-attachment:fixed;color:var(--text);line-height:1.6;letter-spacing:.015em;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-underline-offset:2px}.container{max-width:960px;margin:0 auto;padding:28px 18px 36px;min-width:0;width:100%;overflow-x:clip}.container--wide{max-width:1320px}main{min-width:0;max-width:100%;overflow-x:clip}main>h2:first-of-type{margin:0 0 10px;font-family:var(--font-display),"Hiragino Mincho ProN",serif;font-size:clamp(1.35rem,2.6vw,1.7rem);font-weight:600;letter-spacing:.04em;line-height:1.3;color:var(--text)}main>h2:first-of-type+.phase{margin-top:0;margin-bottom:18px;max-width:46em}.card{background:color-mix(in srgb,var(--card) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid color-mix(in srgb,var(--border) 88%,#fff);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px;box-shadow:var(--shadow-card);max-width:100%;min-width:0}.toolbar-card{display:flex;gap:12px 16px;flex-wrap:wrap;align-items:flex-end}.mobile-stack-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.auth-main{max-width:440px;margin:0 auto}.auth-card{border-radius:14px;padding:22px 22px 20px;box-shadow:var(--shadow-elevated)}.auth-card label{display:block;margin-bottom:12px}.auth-card label input{display:block;width:100%;margin-top:4px}.auth-card button{margin-right:8px;margin-top:4px}.auth-error{color:#b42318;margin:8px 0 12px}.auth-dev-code code{font-weight:700;letter-spacing:.08em}.auth-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.auth-header-link{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:rgba(255,255,255,.9);color:var(--text);font-size:.86rem;font-weight:600;letter-spacing:.03em;text-decoration:none;white-space:nowrap;box-shadow:none}.auth-header-link:hover{background:#fff;border-color:var(--border-strong);color:var(--text)}.auth-header-link--active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:var(--accent-soft);color:var(--accent)}.auth-logout-btn{min-height:40px;padding:0 14px;font-size:.86rem}.auth-user-email{font-size:.82rem;color:var(--muted);max-width:min(220px,40vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px;margin-bottom:12px}.audit-filters input,.audit-filters label,.audit-filters select{margin-bottom:0}.audit-pager{display:flex;gap:8px;margin:12px 0 24px}.nav-backdrop,.nav-toggle,.nav-toggle__bars{display:none}.app-header{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid color-mix(in srgb,var(--border) 75%,transparent)}.app-header--portal{margin-bottom:16px;padding-bottom:0;border-bottom:none}.app-header--auth{margin-bottom:20px;padding-bottom:0;border-bottom:none;text-align:center}.app-header__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 16px;margin-bottom:14px}.app-header__brand{min-width:0;flex:1 1 auto}.app-header__actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto;min-width:0}.app-title{margin:0 0 4px;font-family:var(--font-display),"Hiragino Mincho ProN",serif;font-size:clamp(1.45rem,3.6vw,1.85rem);font-weight:600;letter-spacing:.06em;line-height:1.2}.app-subtitle{margin:0;max-width:36em;font-size:.9rem}.nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.nav a{text-decoration:none;padding:8px 13px;border-radius:999px;border:1px solid transparent;background:rgba(255,255,255,.55);color:var(--muted);font-size:.9rem;font-weight:500;letter-spacing:.02em;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.nav a:hover{border-color:var(--border);background:#fff;color:var(--text)}.nav a.active{border-color:color-mix(in srgb,var(--accent) 28%,var(--border));background:#fff;color:var(--accent);font-weight:600;box-shadow:0 1px 2px rgba(18,22,28,.04)}label{display:block;font-size:13px;font-weight:500;margin-bottom:5px;color:var(--muted);letter-spacing:.02em}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:12px;background:rgba(255,255,255,.92);color:var(--text);font:inherit;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 50%,var(--border));box-shadow:0 0 0 3px var(--accent-soft);background:#fff}button{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:10px 16px;cursor:pointer;font:inherit;font-weight:600;letter-spacing:.03em;transition:background .15s ease,opacity .15s ease,transform .15s ease,box-shadow .15s ease;box-shadow:0 1px 2px rgba(18,22,28,.08)}button:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 86%,#000)}button.secondary{background:rgba(255,255,255,.9);color:var(--text);border:1px solid var(--border);box-shadow:none}button.secondary:hover:not(:disabled){background:#fff;border-color:var(--border-strong)}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button.danger{background:var(--danger);color:#fff}button.danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 88%,#000)}.confirm-dialog-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,20,28,.48);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.confirm-dialog{width:min(100%,420px);background:var(--card);border:1px solid var(--border);border-radius:14px;padding:22px;box-shadow:var(--shadow-elevated);color:var(--text)}.confirm-dialog__title{margin:0 0 8px;font-family:var(--font-display),"Hiragino Mincho ProN",serif;font-size:1.15rem;font-weight:600;letter-spacing:.03em}.confirm-dialog__message{margin:0 0 16px;color:var(--muted);white-space:pre-line}.confirm-dialog__actions{display:flex;justify-content:flex-end;gap:8px}.confirm-dialog__actions button{margin:0}.confirm-dialog--wide{width:min(100%,480px)}.generate-schedule-options{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.generate-schedule-option{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;margin:0;padding:12px 14px;text-align:left;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);cursor:pointer}.generate-schedule-option:hover:not(:disabled){border-color:var(--accent);background:rgba(37,99,235,.04);color:var(--text)}.generate-schedule-option--secondary{background:#f8fafc;color:var(--text)}.generate-schedule-option__title{font-weight:600;font-size:14px;color:var(--text)}.generate-schedule-option__desc{font-size:13px;color:var(--muted);line-height:1.4}.crew-assignment-panel{width:min(100%,520px);max-height:min(90vh,720px);overflow-y:auto}.crew-assignment-section{margin-bottom:16px}.crew-assignment-section__title{margin:0 0 8px;font-size:14px;font-weight:600}.crew-assignment-list{margin:0;padding:0;list-style:none}.crew-assignment-list__item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border)}.crew-assignment-list__item:last-child{border-bottom:none}.crew-assignment-list__name{flex:1 1;min-width:120px;font-size:14px}.crew-assignment-list__badges{display:inline-block;margin-left:8px;font-size:12px;color:var(--muted)}.excel-crew-block__header{display:flex;align-items:stretch;gap:2px;margin-bottom:2px}.excel-crew-block__assign-btn,.excel-crew-block__label{flex:1 1;min-width:0;padding:2px 4px;font-size:11px;font-weight:600}.excel-crew-block__assign-btn{display:block;margin:0;border:none;border-radius:3px;background:rgba(37,99,235,.08);color:var(--accent);text-align:left;cursor:pointer}.excel-crew-block__assign-btn:hover{background:rgba(37,99,235,.16)}.excel-crew-block__assign-btn--empty{color:var(--danger);background:rgba(220,38,38,.06)}.excel-crew-block__assign-btn--empty:hover{background:rgba(220,38,38,.12)}.excel-crew-block__delete{flex:0 0 auto;width:22px;margin:0;padding:0;border:none;border-radius:3px;background:rgba(220,38,38,.08);color:var(--danger);font-size:14px;line-height:1;cursor:pointer}.excel-crew-block__delete:hover{background:rgba(220,38,38,.16)}.excel-crew-block__add-site{display:block;width:100%;margin:0 0 2px;padding:1px 4px;border:1px dashed var(--border);border-radius:3px;background:transparent;color:var(--muted);font-size:10px;text-align:center;cursor:pointer}.excel-crew-block__add-site:hover{border-color:var(--accent);color:var(--accent);background:rgba(37,99,235,.06)}.excel-visit-add-work{display:inline-block;margin-top:1px;padding:0 4px;border:none;background:transparent;color:var(--muted);font-size:9px;cursor:pointer}.excel-visit-add-work:hover{color:var(--accent)}.excel-dnd-item__actions{position:absolute;top:1px;right:1px;z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.excel-dnd-item__work-edit{margin:0;padding:1px 4px;border:1px solid var(--border);border-radius:3px;background:#fff;color:var(--muted);font-size:9px;line-height:1.2;white-space:nowrap;cursor:pointer}.excel-dnd-item__work-edit:hover{border-color:var(--accent);color:var(--accent);background:rgba(37,99,235,.06)}.visit-work-edit__section{margin-bottom:16px}.visit-work-edit__section-title{margin:0 0 8px;font-size:14px}.visit-work-edit__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.visit-work-edit__item{padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2,rgba(0,0,0,.02))}.visit-work-edit__item-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.spot-work-insert-panel{max-width:520px}.spot-work-insert-panel__hint{margin-top:0}.spot-work-insert-panel__parent{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;padding:8px 10px;border-radius:6px;background:var(--surface-2,rgba(0,0,0,.03))}.spot-work-insert-panel__property{font-weight:600}.spot-work-insert-panel__parent-work{font-size:12px;color:var(--muted)}.spot-work-insert-panel__field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;font-size:13px}.spot-work-insert-panel__field input,.spot-work-insert-panel__field textarea{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font:inherit}.spot-work-insert-panel__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}@media (max-width:520px){.spot-work-insert-panel__row{grid-template-columns:1fr}}.excel-crew-block__assign-toggle{display:block;width:100%;margin-top:2px;padding:2px 4px;border:1px dashed var(--border);border-radius:3px;background:transparent;color:var(--muted);font-size:10px;text-align:center;cursor:pointer}.excel-crew-block__assign-toggle:hover{border-color:var(--accent);color:var(--accent);background:rgba(37,99,235,.06)}.excel-crew-block__assign-toggle--empty{color:var(--danger);border-color:rgba(220,38,38,.35)}.excel-crew-block__assign-toggle--open{border-style:solid;border-color:var(--accent);color:var(--accent);background:rgba(37,99,235,.08)}.excel-crew-assignment-inline{margin-top:4px;padding:6px;border:1px solid var(--border);border-radius:4px;background:#fff;font-size:11px}.excel-crew-assignment-inline__required{margin:0 0 6px;font-size:11px;line-height:1.4}.excel-crew-assignment-inline__assigned{color:var(--muted);font-weight:400}.excel-crew-assignment-inline__list{list-style:none;margin:0 0 6px;padding:0}.excel-crew-assignment-inline__list--addable{border-top:1px dashed var(--border);padding-top:4px}.excel-crew-assignment-inline__item{display:flex;align-items:center;gap:4px;margin-bottom:4px}.excel-crew-assignment-inline__name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excel-crew-assignment-inline__badges{margin-left:4px;color:var(--muted);font-size:10px}.excel-crew-assignment-inline__role{width:auto;min-width:64px;margin:0;padding:1px 2px;font-size:10px}.excel-crew-assignment-inline__add,.excel-crew-assignment-inline__remove{flex:0 0 auto;padding:1px 6px;font-size:10px}.excel-crew-assignment-inline__empty{margin:0 0 6px;font-size:10px}.excel-crew-assignment-inline__actions{display:flex;justify-content:flex-end;gap:4px}.excel-crew-assignment-inline__close,.excel-crew-assignment-inline__save{padding:2px 8px;font-size:10px}.excel-day-add-crew{display:block;width:100%;margin-top:4px;padding:2px 4px;border:1px dashed var(--border);border-radius:3px;background:transparent;color:var(--muted);font-size:10px;text-align:center;cursor:pointer}.excel-day-add-crew:hover{border-color:var(--accent);color:var(--accent);background:rgba(37,99,235,.06)}.crew-site-insert-panel{max-width:520px;max-height:min(80vh,640px);overflow:hidden;display:flex;flex-direction:column}.crew-site-insert-panel__hint{margin:0 0 12px}.crew-site-insert-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1 1;border:1px solid var(--border);border-radius:6px}.crew-site-insert-list__item{border-bottom:1px solid var(--border)}.crew-site-insert-list__item:last-child{border-bottom:none}.crew-site-insert-list__btn{display:block;width:100%;padding:10px 12px;border:none;border-radius:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.crew-site-insert-list__btn:hover:not(:disabled){background:rgba(37,99,235,.06);color:var(--text)}.crew-site-insert-list__name{display:block;font-weight:600;font-size:14px;color:var(--text)}.crew-site-insert-list__work{display:block;margin-top:2px;font-size:12px;color:var(--muted)}.crew-site-insert-list__meta{display:block;margin-top:4px;font-size:11px;color:var(--muted)}table{width:100%}.table-scroll,.table-wrap{overflow-x:auto;overflow-y:visible;max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.table-scroll>table,.table-wrap>table{width:100%;min-width:max-content}.site-master-table-scroll{overflow:auto;max-height:calc(100dvh - 220px);max-width:100%;overscroll-behavior:contain}.site-master-editor-panel{padding:0 0 16px;margin-bottom:12px;border-bottom:1px solid var(--border)}.site-master-editor-panel .site-inline-editor{padding:0;min-width:0}.site-master-editor-panel .site-inline-editor__form{max-width:none}.site-master-table{border-collapse:separate;border-spacing:0}.site-master-table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:var(--card);box-shadow:0 1px 0 var(--border)}.site-master-table .site-master-table__sticky-start{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:var(--card);min-width:9rem;max-width:16rem;box-shadow:6px 0 8px -6px rgba(26,29,33,.12)}.site-master-table thead th.site-master-table__sticky-start{z-index:4}tr.site-master-row--warning .site-master-table__sticky-start{background:#fff}tr.site-master-row--active .site-master-table__sticky-start{background:var(--surface-2,#f0f4ff)}.site-master-table .site-master-table__actions{position:-webkit-sticky;position:sticky;right:0;z-index:1;background:var(--card);white-space:nowrap;min-width:9.5rem;box-shadow:-6px 0 8px -6px rgba(26,29,33,.12)}.site-master-table thead th.site-master-table__actions{z-index:3}tr.site-master-row--warning .site-master-table__actions{background:#fff}tr.site-master-row--active .site-master-table__actions,tr.site-master-row--active td{background:var(--surface-2,#f0f4ff)}.site-master-table__actions-inner{display:flex;flex-wrap:wrap;gap:6px}.site-master-table__actions-inner button{margin:0}tr.site-master-row--editor td{padding:0;background:var(--surface-2,#f0f4ff);border-top:none;vertical-align:top;position:relative;z-index:5}.site-inline-editor{padding:16px}.site-inline-editor__title{margin:0 0 12px;font-size:16px}.site-inline-editor__form{margin:0;padding:16px;background:var(--card);border:1px solid var(--border);border-radius:8px}.site-inline-editor__members{border:1px solid var(--border);margin:0 0 12px;padding:12px}.site-inline-editor__member-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));grid-gap:6px 12px;gap:6px 12px}.site-inline-editor__member{display:flex;align-items:center;gap:8px;margin:0}.site-inline-editor__member input{width:auto;margin:0}tr.worker-row--editor td{padding:0;background:var(--surface-2,#f0f4ff);border-top:none;vertical-align:top}.worker-inline-editor{padding:16px}.worker-inline-editor__title{margin:0 0 12px;font-size:16px}.worker-inline-editor__form{margin:0;padding:16px;background:var(--card);border:1px solid var(--border);border-radius:8px}.worker-table-actions{display:flex;flex-wrap:wrap;gap:8px}.worker-role-badge{display:inline-block;font-weight:600}.worker-role-badge__hint{display:block;margin-top:2px;font-size:12px}.timeoff-multi-picker{position:relative;display:inline-flex}.timeoff-multi-picker__trigger{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--muted);cursor:pointer}.timeoff-multi-picker__trigger--open,.timeoff-multi-picker__trigger:hover:not(:disabled){color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--card))}.timeoff-multi-picker__trigger:disabled{opacity:.45;cursor:not-allowed}.timeoff-multi-picker__trigger svg{display:block;pointer-events:none}.timeoff-multi-picker__panel{position:fixed;z-index:80;width:min(300px,calc(100vw - 16px));padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--card);box-shadow:0 10px 28px rgba(15,23,42,.14)}.timeoff-multi-picker__heading{margin:0 0 10px;font-size:13px;font-weight:600}.timeoff-multi-picker__grid,.timeoff-multi-picker__weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:4px;gap:4px}.timeoff-multi-picker__weekdays{margin-bottom:4px}.timeoff-multi-picker__weekdays span{text-align:center;font-size:11px;color:var(--muted);font-weight:600}.timeoff-multi-picker__weekday--sun{color:#c62828}.timeoff-multi-picker__weekday--sat{color:#1565c0}.timeoff-multi-picker__blank{min-height:36px}.timeoff-multi-picker__day{min-height:36px;margin:0;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font-size:13px;font-weight:600}.timeoff-multi-picker__day--sun{color:#c62828}.timeoff-multi-picker__day--sat{color:#1565c0}.timeoff-multi-picker__day--selected{background:var(--accent);border-color:var(--accent);color:#fff}.timeoff-multi-picker__day--disabled{opacity:.35;text-decoration:line-through;cursor:not-allowed}.timeoff-multi-picker__day:not(:disabled):hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.timeoff-multi-picker__summary{margin:10px 0 8px}.timeoff-multi-picker__actions{display:flex;justify-content:flex-end;gap:8px}.timeoff-multi-picker__actions button{margin:0}.month-field-input{position:relative;display:flex;align-items:center;gap:10px;width:100%;max-width:100%;min-width:0;min-height:44px;margin:0 0 12px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);cursor:pointer;overflow:hidden}.month-field-input--disabled{opacity:.45;cursor:not-allowed}.month-field-input__text{flex:1 1 auto;min-width:0;font-size:15px;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.month-field-input__icon{flex:0 0 auto;display:flex;color:var(--muted);pointer-events:none}.month-field-input__native{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:none;border-radius:6px;opacity:0;cursor:pointer;color-scheme:light}.month-field-input--disabled .month-field-input__native{cursor:not-allowed}.site-list-toolbar{display:flex;align-items:flex-end;margin-bottom:8px}.site-list-toolbar__sort{flex:0 1 280px;min-width:220px}.site-list-toolbar__sort select{margin-bottom:0}.site-list-panel{margin-bottom:16px}.site-master-mobile-list{display:none;list-style:none;margin:0;padding:0}.site-master-mobile-list__empty{margin:0}.site-master-mobile-list__item{border-radius:12px;margin-bottom:8px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(180deg,#e6ebf1,#d8e0e9) border-box;border:1px solid transparent;box-shadow:0 1px 2px rgba(21,25,30,.03);overflow:hidden}.site-master-mobile-list__item--warning{background:linear-gradient(#fffafa,#fff) padding-box,linear-gradient(180deg,#fecaca,#fca5a5) border-box}.site-master-mobile-list__item--active{background:linear-gradient(#f7fafc,#fff) padding-box,linear-gradient(180deg,color-mix(in srgb,var(--accent) 35%,#d5dce5),#c2cbd6) border-box}.site-master-mobile-list__item--expanded{box-shadow:0 8px 22px rgba(21,25,30,.06)}.site-master-mobile-list__header{display:flex;align-items:stretch;gap:4px;width:100%;padding:2px 4px 2px 10px}.site-master-mobile-list__name-btn{flex:1 1 auto;min-width:0;margin:0;padding:14px 6px;border:none;border-radius:0;background:transparent;color:var(--accent);text-align:left;font:inherit;font-family:var(--font-display),"Hiragino Mincho ProN",serif;font-weight:600;font-size:1.02rem;letter-spacing:.02em;line-height:1.4;text-decoration:none;cursor:pointer;min-height:48px;-webkit-tap-highlight-color:transparent;word-break:break-word;transition:color .15s ease}.site-master-mobile-list__name-btn:active,.site-master-mobile-list__name-btn:focus-visible,.site-master-mobile-list__name-btn:hover:not(:disabled){background:transparent;color:color-mix(in srgb,var(--accent) 82%,#000);filter:none;box-shadow:none}.site-master-mobile-list__toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;margin:4px 6px 4px 0;padding:0;border:1px solid var(--border);border-radius:999px;background:#f8fafc;color:var(--muted);text-align:left;font:inherit;cursor:pointer;min-height:40px;min-width:40px;-webkit-tap-highlight-color:transparent;transition:background .15s ease,border-color .15s ease,color .15s ease}.site-master-mobile-list__toggle:active,.site-master-mobile-list__toggle:focus-visible,.site-master-mobile-list__toggle:hover:not(:disabled){background:#fff;border-color:var(--border-strong);color:var(--text);filter:none;box-shadow:none}.site-master-mobile-list__name{flex:1 1 auto;min-width:0;font-weight:600;line-height:1.4;word-break:break-word}.site-master-property-link{margin:0;padding:0;border:none;border-radius:0;background:transparent;color:var(--accent);font:inherit;font-family:var(--font-display),"Hiragino Mincho ProN",serif;font-weight:600;letter-spacing:.02em;text-align:left;text-decoration:none;cursor:pointer;min-height:0;-webkit-tap-highlight-color:transparent;border-bottom:1px solid color-mix(in srgb,var(--accent) 28%,transparent);transition:color .15s ease,border-color .15s ease}.site-master-property-link:active,.site-master-property-link:focus-visible,.site-master-property-link:hover:not(:disabled){background:transparent;color:color-mix(in srgb,var(--accent) 82%,#000);border-bottom-color:color-mix(in srgb,var(--accent) 55%,transparent);filter:none;box-shadow:none}.site-master-mobile-list__warning-badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#fef2f2;border:1px solid #fecaca;color:var(--danger);font-size:12px;font-weight:700}.site-master-mobile-list__chevron{flex:0 0 auto;color:inherit;font-size:11px;line-height:1}.site-master-mobile-list__details{padding:0 12px 12px;border-top:1px solid #eef2f6;background:linear-gradient(180deg,#fbfcfd,#fff 40%)}.site-master-mobile-list__fields{margin:0;padding:0}.site-master-mobile-detail{display:grid;grid-template-columns:minmax(6.5rem,34%) 1fr;grid-gap:8px 12px;gap:8px 12px;padding:10px 0;border-top:1px solid #f0f3f7}.site-master-mobile-detail:first-child{border-top:none}.site-master-mobile-detail dt{margin:0;font-size:12px;color:var(--muted);font-weight:600}.site-master-mobile-detail dd{margin:0;font-size:14px;line-height:1.45;word-break:break-word}.site-master-mobile-detail--warning dd{color:var(--danger);font-weight:600}.site-master-mobile-list__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.site-master-mobile-list__actions button{margin:0}td,th{text-align:left;padding:8px;border-bottom:1px solid var(--border);font-size:14px}.badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;background:var(--accent-soft)}.phase{font-size:.9rem;color:var(--muted);line-height:1.65}table{border-collapse:collapse}th{font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--muted);text-align:left}.schedule-layout{display:grid;grid-template-columns:240px 1fr;grid-gap:16px;gap:16px}@media (max-width:720px){.schedule-layout{grid-template-columns:1fr}}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.weekday-header{text-align:center;font-size:12px;font-weight:600;padding:6px 2px;color:var(--text)}.weekday-header--sun{color:#c62828}.weekday-header--sat{color:#1565c0}.day-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:44px;padding:4px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);cursor:pointer;font-size:13px}.day-cell--empty{background:transparent;border-color:transparent;cursor:default;min-height:44px}.day-cell--sun .day-num{color:#c62828}.day-cell--sat .day-num{color:#1565c0}.day-cell:not(.day-cell--sun):not(.day-cell--sat) .day-num{color:var(--text)}.day-cell.selected{border-color:var(--accent);background:var(--accent-soft)}.day-cell.selected.day-cell--sun .day-num{color:#b71c1c}.day-cell.selected.day-cell--sat .day-num{color:#0d47a1}.day-cell.warn{border-color:var(--danger);box-shadow:inset 0 0 0 1px #fecaca}.day-num{font-weight:600;line-height:1.2}.day-badge{font-size:10px;color:var(--muted);line-height:1.2}.crew-card{border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:12px}.crew-card--error{border-color:var(--danger);background:#fef2f2}.crew-card--editing{background:#fafbfc}.site-master-cell--warning{background:#fef2f2;border:1px solid #fecaca;color:var(--danger);font-size:12px;font-weight:600;vertical-align:middle}.site-master-cell--warning .site-master-cell__value{color:var(--text);font-weight:400}tr.site-master-row--warning td:not(.site-master-cell--warning):not([style*=background]){box-shadow:inset 0 0 0 1px #fecaca}.constraint-errors{margin:8px 0 0;padding-left:20px;color:var(--danger);font-size:13px}.excel-calendar{font-size:12px;line-height:1.35;overflow-x:auto;overscroll-behavior-x:contain;max-width:100%}.excel-calendar-title{display:grid;grid-template-columns:1fr auto;align-items:center;margin-bottom:0;font-size:12px;font-weight:600}.excel-calendar-title-main{text-align:center;grid-column:1}.excel-calendar-title-company{text-align:center;min-width:7rem}.excel-calendar-table{width:100%;border-collapse:collapse;table-layout:fixed;border:2px solid var(--text)}.excel-weekday-th{border:1px solid var(--border);border-top:2px solid var(--text);padding:6px 4px;text-align:center;font-size:12px;font-weight:600;background:#f6f7f9}.excel-weekday-th--sun{color:#c62828}.excel-weekday-th--sat{color:#1565c0}.excel-day-col,.excel-week-row{vertical-align:top}.excel-day-col{border:1px solid var(--border);padding:0;min-height:140px;background:var(--card)}.excel-day-cell{position:relative;min-height:140px}.excel-day-header{display:flex;align-items:stretch}.excel-day-header .excel-day-number{flex:1 1;min-width:0}.excel-day-body{position:relative;z-index:1;padding:2px 4px 6px;min-height:100px;display:flex;flex-direction:column}.excel-day-shift-section{flex:0 0 auto}.excel-day-shift-section--night{margin-top:auto}.excel-night-shift-divider{flex:1 1 auto;min-height:.4em;border-top:1px dashed #94a3b8;margin:4px 0}.excel-day-shift-section--night .excel-crew-block{background:rgba(30,41,59,.04);border-radius:4px;padding-left:2px;padding-right:2px}.excel-day-cell--dnd-active{cursor:default}.excel-day-col:first-child{border-left:2px solid var(--text)}.excel-day-col:last-child{border-right:2px solid var(--text)}.excel-week-row:last-child .excel-day-col{border-bottom:2px solid var(--text)}.excel-day-col--empty{background:#fafbfc;cursor:default}.excel-day-col--selected{background:var(--accent-soft);outline:2px solid var(--accent);outline-offset:-2px}.excel-day-col--warn{box-shadow:inset 0 0 0 1px #fecaca}.excel-day-col--out-of-range{opacity:.35;pointer-events:none}.excel-day-col--out-of-range .excel-day-number{color:var(--muted)}.excel-day-number{display:block;width:100%;border:2px solid var(--text);text-align:center;font-weight:700;font-size:13px;padding:3px 4px;margin:0;background:var(--card);color:inherit;font-family:inherit;cursor:pointer}.excel-day-number:hover{background:#f0f4ff}.excel-day-number--sun{color:#c62828}.excel-day-number--sat{color:#1565c0}.excel-crew-block{padding:2px 0;position:relative;border-radius:4px}.excel-crew-block--drop-target{outline:2px solid var(--accent);outline-offset:2px;background:rgba(37,99,235,.08)}.excel-dnd-item{position:relative;border-radius:3px;margin:1px 0}.excel-dnd-item--draggable{cursor:-webkit-grab;cursor:grab}.excel-dnd-item--draggable:active{cursor:-webkit-grabbing;cursor:grabbing}.excel-dnd-item--selected{outline:2px solid var(--accent);outline-offset:1px;background:rgba(37,99,235,.1)}.excel-dnd-item--dragging{opacity:.45}.excel-dnd-item--held{outline:2px dashed var(--accent);outline-offset:1px;background:rgba(37,99,235,.14)}.excel-crew-block--hold-target,.excel-dnd-item--drop-target{cursor:copy}.excel-crew-block--focused{outline:2px solid var(--accent);outline-offset:1px;box-shadow:0 0 0 3px rgba(37,99,235,.18)}.excel-crew-block--highlight-worker{background:rgba(34,197,94,.14);border-color:rgba(22,163,74,.55);box-shadow:inset 0 0 0 1px rgba(22,163,74,.35)}.excel-entry-line--highlight-member{background:rgba(34,197,94,.22);font-weight:600;border-radius:3px}.excel-day-col--hold-target{cursor:copy}.excel-calendar--hold-active .excel-day-col:not(.excel-day-col--empty){box-shadow:inset 0 0 0 1px rgba(37,99,235,.2)}.excel-hold-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:8px 12px;border:1px dashed var(--accent);border-radius:6px;background:rgba(37,99,235,.08);font-size:13px}.excel-hold-banner__cancel{margin:0;padding:4px 10px;font-size:12px}.excel-unassigned-item--held{outline:2px dashed var(--accent);outline-offset:1px;background:rgba(37,99,235,.1)}.excel-dnd-item__delete{position:static;top:auto;right:auto;z-index:auto;width:18px;height:18px;padding:0;border:1px solid #fca5a5;border-radius:3px;background:#fff;color:#b91c1c;font-size:14px;line-height:1;cursor:pointer}.excel-dnd-item__delete:hover{background:#fef2f2}.excel-dnd-item--held .excel-entry-line,.excel-dnd-item--held .excel-visit-pair,.excel-dnd-item--selected .excel-entry-line,.excel-dnd-item--selected .excel-visit-pair{padding-right:52px}.excel-crew-block__handle{position:absolute;top:2px;right:2px;font-size:10px;line-height:1;color:var(--muted);-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.excel-day-col--drop-target{outline:2px dashed var(--accent);outline-offset:-2px;background:rgba(37,99,235,.06)}.excel-calendar-dnd-hint{margin:0 0 8px;font-size:13px}.excel-unassigned-panel{margin-bottom:12px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:rgba(220,38,38,.04)}.excel-unassigned-panel__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.excel-unassigned-panel__title{margin:0;font-size:13px;font-weight:600;color:var(--danger)}.excel-unassigned-panel__toggle{margin:0;padding:4px 10px;font-size:12px}.excel-unassigned-panel__search{display:block;margin-top:10px}.excel-unassigned-panel__search-label{display:block;margin-bottom:4px;font-size:12px;font-weight:600;color:var(--text)}.excel-unassigned-panel__search-input{width:100%;max-width:320px;margin-bottom:0;padding:6px 10px;font-size:13px}.excel-unassigned-panel__empty{margin:0;font-size:13px;color:var(--muted)}.excel-unassigned-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.excel-unassigned-item{min-width:200px;max-width:320px;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--card);cursor:-webkit-grab;cursor:grab}.excel-unassigned-item:active{cursor:-webkit-grabbing;cursor:grabbing}.excel-unassigned-item--dragging{opacity:.45}.excel-unassigned-meta{margin-top:2px;font-size:12px;color:var(--muted)}.excel-unassigned-suggestions{margin-top:6px;font-size:12px;color:var(--muted);line-height:1.45}.excel-unassigned-suggestions__label{display:block;margin-bottom:4px;font-weight:600;color:var(--text)}.excel-unassigned-suggestions__list{display:flex;flex-wrap:wrap;gap:4px}.excel-unassigned-suggestions__btn{display:inline-block;padding:2px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font-size:12px;line-height:1.4;cursor:pointer;text-align:left}.excel-unassigned-suggestions__btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.excel-unassigned-suggestions__btn:disabled{opacity:.5;cursor:not-allowed}.excel-visit-pair+.excel-visit-pair{margin-top:2px}.excel-crew-spacer{height:.6em}.excel-entry-line{word-break:break-all;white-space:pre-wrap}.excel-entry-line--client{font-weight:600}.billing-client-colors__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.billing-client-colors__toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.billing-client-colors__list{display:flex;flex-direction:column;gap:12px}.billing-client-colors__row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--border)}.billing-client-colors__row:first-child{border-top:none;padding-top:0}.billing-client-colors__meta{display:flex;flex-direction:column;gap:4px;min-width:180px}.billing-client-colors__preview{display:inline-block;font-weight:600}.billing-client-colors__count{margin:0}.labor-pay-settings{display:flex;flex-direction:column;gap:0}.labor-pay-settings__toggle{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin:0 0 20px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted,#f7f7f8)}.labor-pay-settings__toggle input[type=checkbox]{width:auto;margin:3px 0 0;flex-shrink:0}.labor-pay-settings__toggle-text label{display:block;margin:0 0 4px;font-size:15px;font-weight:600;cursor:pointer}.labor-pay-settings__toggle-hint{margin:0;font-size:13px;color:var(--muted,#666);line-height:1.5}.labor-pay-settings__body{border:none;margin:0;padding:0;min-width:0}.labor-pay-settings__body:disabled{opacity:.55}.labor-pay-settings__section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}.labor-pay-settings__section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.labor-pay-settings__section-title{margin:0 0 12px;font-size:15px;font-weight:600}.labor-pay-settings__subsection{margin-top:12px}.labor-pay-settings__subsection-label{margin:0 0 8px;font-size:14px;font-weight:500}.labor-pay-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:12px 16px;gap:12px 16px}.labor-pay-settings-grid--narrow{grid-template-columns:repeat(auto-fill,minmax(240px,320px))}.labor-pay-settings-field label{display:block;margin-bottom:4px;font-size:14px}.labor-pay-settings-field input,.labor-pay-settings-field select,.labor-pay-settings-field textarea{width:100%;margin-bottom:0}.labor-pay-settings-field__hint{margin:6px 0 0;font-size:12px;color:var(--muted,#666);line-height:1.45}.labor-pay-settings-weekdays{display:flex;flex-wrap:wrap;gap:8px 12px}.labor-pay-settings-weekday{display:inline-flex;align-items:center;gap:6px;font-size:14px;margin:0;cursor:pointer}.labor-pay-settings-weekday input[type=checkbox]{width:auto;margin:0}.labor-pay-settings__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.billing-client-colors__actions,.billing-client-colors__picker{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.billing-client-colors__reset{white-space:nowrap}.billing-client-colors__custom-circle{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;flex-shrink:0}.billing-client-colors__custom-circle input[type=color]{position:absolute;inset:0;width:36px;height:36px;opacity:0;cursor:pointer;border:none;padding:0}.billing-client-colors__custom-face{width:36px;height:36px;border-radius:50%;border:2px dashed var(--border);background:conic-gradient(from 0deg,#ef4444,#f59e0b,#eab308,#22c55e,#06b6d4,#3b82f6,#a855f7,#ef4444);box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);pointer-events:none}.billing-client-colors__custom-circle--has-color .billing-client-colors__custom-face{border-style:solid;border-color:transparent;background:none}.billing-client-colors__custom-label{margin:0;font-size:.75rem;line-height:1.2}.billing-client-colors__custom-circle:has(input:disabled){opacity:.6;cursor:wait}.excel-entry-work{color:var(--danger)}.excel-entry-members{color:var(--muted)}.schedule-editor-panel{margin-top:20px;scroll-margin-top:16px}.site-form-panel{margin:0;scroll-margin-top:16px}.site-master-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin:16px 0}.site-master-actions .csv-import{margin:0}.site-list-filters{display:flex;gap:16px;flex-wrap:wrap;align-items:end}.site-list-filters__search{flex:1 1 240px;min-width:200px}.recurrence-rule-field__label{display:block;font-weight:600;margin-bottom:8px}.recurrence-rule-field__section{border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin-bottom:12px}.recurrence-rule-field__section legend{font-size:13px;font-weight:600;padding:0 4px}.recurrence-rule-field__radios{display:flex;flex-direction:column;gap:6px}.recurrence-rule-field__radio{display:flex;align-items:center;gap:8px;font-size:14px}.recurrence-rule-field__radio input{width:auto}.recurrence-rule-field__weekdays{display:flex;flex-wrap:wrap;gap:8px 12px}.recurrence-rule-field__months{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:8px 12px;gap:8px 12px;margin-top:8px}.recurrence-rule-field__month-all{display:inline-flex;align-items:center;gap:6px;margin-bottom:4px}.recurrence-rule-field__month-all input{width:auto}.recurrence-rule-field__month{display:inline-flex;align-items:center;gap:4px;font-size:13px}.recurrence-rule-field__month input{width:auto}.recurrence-rule-field__weekday{display:inline-flex;align-items:center;gap:4px;min-width:2.5em;font-size:14px}.recurrence-rule-field__weekday input{width:auto}.recurrence-rule-field__nth-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.recurrence-rule-field__summary{margin:0 0 8px;padding:8px 10px;background:var(--surface-2,#f4f6f8);border-radius:6px;font-size:14px}.crew-route-panel{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border);display:grid;grid-gap:12px;gap:12px}@media (min-width:900px){.crew-route-panel{grid-template-columns:1fr minmax(280px,420px);align-items:start}}.crew-route-panel__map{display:flex;flex-direction:column;gap:10px;min-width:0}.crew-timeline__summary{margin:0 0 8px;font-size:14px}.crew-timeline__list{margin:0;padding-left:0;list-style:none;font-size:13px}.crew-timeline__list li{margin-bottom:6px;display:flex;gap:8px;align-items:baseline}.crew-timeline__badge{display:inline-block;min-width:36px;text-align:center;font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px;background:var(--border)}.crew-timeline__badge--travel{background:#dbeafe;color:#1d4ed8}.crew-timeline__badge--work{background:#dcfce7;color:#166534}.crew-timeline__badge--break{background:#fef9c3;color:#854d0e}.crew-timeline__badge--depot{background:#f3f4f6;color:var(--muted)}.route-map__leaflet{width:100%;max-width:420px;height:280px;min-height:280px;border:1px solid var(--border);border-radius:8px;background:#e8eef2}.route-map__leaflet.leaflet-container img.leaflet-tile{mix-blend-mode:normal!important}.route-map__leaflet .leaflet-gl-layer{pointer-events:none}.route-map-marker{pointer-events:auto;background:transparent!important;border:none!important}.route-map-marker span{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:700;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.25)}.route-map-marker--depot span{background:#64748b;font-size:10px;width:auto;min-width:28px;padding:0 4px;border-radius:14px}.route-map__legend{margin:8px 0 0;padding-left:18px;font-size:12px;color:var(--muted)}.async-job-progress{margin:12px 0 0}.async-job-progress__title{margin:0 0 6px;font-size:14px;font-weight:600}.async-job-progress__track{height:8px;border-radius:999px;background:var(--border);overflow:hidden}.async-job-progress__track--indeterminate .async-job-progress__bar{width:35%!important;animation:async-job-indeterminate 1.2s ease-in-out infinite}.async-job-progress__bar{height:100%;border-radius:999px;background:var(--accent);transition:width .25s ease}.async-job-progress__message{margin:6px 0 0;font-size:13px;color:var(--muted)}.async-job-progress__error{margin:4px 0 0;font-size:13px;color:var(--danger)}@keyframes async-job-indeterminate{0%{transform:translateX(-100%)}to{transform:translateX(300%)}}.attendance-grid{font-size:12px;border-collapse:separate;border-spacing:0}.attendance-grid-sticky{position:-webkit-sticky;position:sticky;left:0;z-index:2;background:var(--card);min-width:88px}.attendance-grid-day{min-width:36px;text-align:center;padding:4px 2px}.attendance-grid-cell{padding:2px;text-align:center;vertical-align:middle}.attendance-grid-cell--warn{background:#fef2f2}.attendance-grid-view{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;min-height:36px;padding:2px;border:1px solid var(--border);border-radius:4px;background:#fff;font-size:11px;line-height:1.2;justify-content:center}.self-attendance-day--draft,.self-attendance-row--draft,.self-attendance-slot--draft{background:#fffbeb}.self-attendance-draft-mark{margin-left:6px;font-size:11px;color:#b45309}.attendance-grid-minutes{font-size:10px;color:var(--muted);line-height:1.1}.self-attendance-list{list-style:none;margin:0;padding:0}.self-attendance-day{border-bottom:1px solid var(--border)}.self-attendance-day__date{display:none}.self-attendance-day__slots{display:block}.self-attendance-slot{display:grid;grid-template-columns:72px 56px 1fr 24px;grid-gap:8px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.self-attendance-day__slots>.self-attendance-slot:last-child{border-bottom:none}.self-attendance-slot__header{display:contents}.self-attendance-slot__shift{display:none}.self-attendance-date,.self-attendance-slot__date-desktop{font-weight:600}.self-attendance-slot__status,.self-attendance-status{color:var(--muted);font-size:13px}.self-attendance-day--warn,.self-attendance-slot--warn{background:#fef2f2}.self-attendance-row--warn{background:#fef2f2;margin:0 -16px;padding-left:16px;padding-right:16px}.self-attendance-actions{display:flex;gap:8px;justify-content:flex-end}.self-attendance-warn{color:var(--danger);text-align:center}.year-month-picker{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.year-month-picker>div{flex:1 1 120px;min-width:0}.portal-worker-picker{margin-bottom:12px}.portal-worker-picker__hint{margin:8px 0 0}.portal-range-label{margin:0 0 12px}.portal-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.portal-tabs button{flex:1 1 140px}.schedule-subtabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.schedule-subtabs__btn{flex:1 1 180px;margin:0;background:var(--card);color:var(--text);border:1px solid var(--border)}.schedule-subtabs__btn--active,.schedule-subtabs__btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.schedule-subtabs__btn--active{font-weight:600}.portal-save-bar{position:-webkit-sticky;position:sticky;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;padding:12px 0 calc(12px + env(safe-area-inset-bottom, 0px));background:linear-gradient(180deg,rgba(241,243,246,0) 0,rgba(241,243,246,.92) 24%,var(--bg) 100%)}.portal-save-bar button{flex:1 1 160px}.portal-save-bar__hint{flex:1 1 100%;margin:0}.excel-calendar-table--responsive{min-width:720px}.public-schedule-card{padding:8px}.portal-schedule-legend{display:flex;align-items:center;gap:8px;margin:0 0 8px}.portal-schedule-legend__swatch{display:inline-block;width:14px;height:14px;border-radius:3px;background:rgba(34,197,94,.35);border:1px solid rgba(22,163,74,.65);flex-shrink:0}.portal-layout{min-width:0}.masters-tab-bar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.portal-schedule-desktop{display:block}.portal-schedule-mobile{display:none}.portal-attendance-card{padding-bottom:4px}.portal-attendance-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.portal-attendance-toolbar__hint{margin:0;flex:1 1 auto}.portal-attendance-toolbar__today{flex:0 0 auto;margin:0;white-space:nowrap}.public-schedule-list{display:flex;flex-direction:column;gap:16px}.public-schedule-mobile{display:flex;flex-direction:column;gap:12px;min-width:0}.public-schedule-mobile__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.public-schedule-mobile__month-label{margin:0;font-weight:600;flex:1 1 auto}.public-schedule-date-picker{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}.public-schedule-date-chip{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:52px;min-height:64px;padding:8px 6px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:inherit;scroll-snap-align:center;cursor:pointer}.public-schedule-date-chip--selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.public-schedule-date-chip--today:not(.public-schedule-date-chip--selected){border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.public-schedule-date-chip--mine:not(.public-schedule-date-chip--selected){border-color:rgba(26,122,76,.55);background:rgba(26,122,76,.08)}.public-schedule-date-chip--sun .public-schedule-date-chip__weekday{color:var(--danger)}.public-schedule-date-chip--sat .public-schedule-date-chip__weekday{color:var(--accent)}.public-schedule-date-chip__weekday{font-size:11px;line-height:1.2}.public-schedule-date-chip__day{font-size:18px;font-weight:700;line-height:1.1}.public-schedule-date-chip__dot{width:6px;height:6px;border-radius:999px;background:#64748b}.public-schedule-date-chip--selected .public-schedule-date-chip__dot{background:var(--accent)}.public-schedule-date-chip--mine .public-schedule-date-chip__dot{background:var(--ok)}.public-schedule-day-detail{border-top:1px solid var(--border);padding-top:12px}.public-schedule-day__heading{margin:0 0 8px;font-size:15px;font-weight:600}.public-schedule-day__empty{margin:0;padding:8px 0}.public-schedule-day__crews{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.public-schedule-crew{border:1px solid var(--border);border-radius:10px;padding:12px;background:var(--card)}.public-schedule-crew--mine{background:rgba(34,197,94,.12);border-color:rgba(22,163,74,.45);box-shadow:inset 0 0 0 1px rgba(22,163,74,.2)}.public-schedule-crew--expanded{border-color:#93c5fd}.public-schedule-crew__toggle{display:block;width:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.public-schedule-crew__toggle-hint{margin-left:auto;font-size:12px;font-weight:500;color:var(--accent);white-space:nowrap}.public-crew-detail{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}.public-crew-detail__external-nav{margin-top:12px}.public-crew-detail__google-maps{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border-radius:10px;background:#1a73e8;color:#fff;font-weight:600;text-decoration:none}.public-crew-detail__google-maps:hover{background:#1558b0;color:#fff}.public-crew-detail__external-nav-hint,.public-crew-detail__external-nav-warn{margin:8px 0 0;font-size:12px}.public-crew-detail__external-nav-warn{color:#b45309}.portal-schedule-desktop-day{margin-top:16px;padding-top:12px;border-top:1px solid var(--border);scroll-margin-top:16px}.portal-schedule-desktop-day__hint{margin:0 0 12px}.public-schedule-crew__header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.public-schedule-crew__label{font-weight:600}.public-schedule-crew__shift{font-size:12px;padding:2px 8px;border-radius:999px;background:#1e293b;color:#fff}.public-schedule-crew__members,.public-schedule-crew__visits{list-style:none;margin:0;padding:0}.public-schedule-crew__visits{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.public-schedule-crew__site{font-weight:500}.public-schedule-crew__property{display:inline;margin:0;padding:0;border:none;border-radius:0;background:none;color:var(--accent);font:inherit;font-family:var(--font-display),"Hiragino Mincho ProN",serif;font-weight:600;letter-spacing:.02em;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 28%,transparent);cursor:pointer;min-height:0;-webkit-tap-highlight-color:transparent;transition:color .15s ease,border-color .15s ease}.public-schedule-crew__property:active,.public-schedule-crew__property:focus-visible,.public-schedule-crew__property:hover:not(:disabled){background:transparent;color:color-mix(in srgb,var(--accent) 82%,#000);border-bottom-color:color-mix(in srgb,var(--accent) 55%,transparent);filter:none;box-shadow:none}.public-schedule-crew__toggle-btn{margin-left:auto;flex:0 0 auto;padding:6px 10px;font-size:13px}.public-schedule-crew__work{font-size:13px;color:var(--muted)}.public-schedule-crew__members{display:flex;flex-wrap:wrap;gap:6px;font-size:13px}.public-schedule-crew__members li{padding:4px 8px;border-radius:6px;background:var(--bg)}.public-schedule-crew__member--mine{background:rgba(34,197,94,.22);font-weight:600}@media (max-width:768px){.container{padding:12px 12px calc(20px + env(safe-area-inset-bottom, 0px))}.container--wide .portal-layout{padding-bottom:calc(72px + env(safe-area-inset-bottom, 0px))}.app-header--portal{margin-bottom:8px}.app-header--portal .app-title{font-size:1.25rem}.app-subtitle{display:none}.portal-tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;margin:0;padding:8px 12px calc(8px + env(safe-area-inset-bottom, 0px));background:rgba(255,255,255,.96);border-top:1px solid var(--border);box-shadow:0 -4px 16px rgba(15,23,42,.08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.portal-tabs button{flex:1 1;min-height:48px;font-size:15px}.portal-schedule-desktop{display:none}.portal-schedule-mobile{display:block}.public-schedule-card .portal-schedule-toolbar{display:none}.portal-worker-picker select{font-size:16px}.portal-save-bar{bottom:calc(64px + env(safe-area-inset-bottom, 0px))}.card{padding:12px;margin-bottom:12px}.app-header{margin-bottom:0;position:relative;z-index:50}.app-header__top{margin-bottom:8px;align-items:center}.app-title{font-size:1.25rem}.auth-header-actions{gap:6px}.auth-user-email{display:none}.auth-header-link,.auth-logout-btn{padding-inline:10px;font-size:13px}.nav-toggle{align-items:center;gap:8px;min-height:44px;margin:0;flex:0 0 auto;padding-inline:12px}.nav-toggle,.nav-toggle__bars{display:inline-flex;justify-content:center}.nav-toggle__bars{flex-direction:column;gap:4px;width:18px}.nav-toggle__bars span{display:block;height:2px;width:100%;border-radius:1px;background:currentColor}.nav-backdrop{display:block;inset:0;z-index:45;padding:0;border:0;border-radius:0;background:rgba(21,25,30,.42);cursor:pointer;min-height:0}.nav,.nav-backdrop{position:fixed;margin:0}.nav{display:none;top:0;right:0;bottom:0;z-index:55;flex-direction:column;flex-wrap:nowrap;gap:6px;width:min(300px,calc(100vw - 48px));padding:calc(16px + env(safe-area-inset-top, 0px)) 14px calc(20px + env(safe-area-inset-bottom, 0px));background:#fff;border-left:1px solid var(--border);box-shadow:-8px 0 28px rgba(15,23,42,.14);overflow-y:auto;-webkit-overflow-scrolling:touch}.nav a,.nav--open{display:flex}.nav a{align-items:center;min-height:48px;padding:12px 14px;line-height:1.35;border-radius:10px}input,select,textarea{font-size:16px;min-height:44px}textarea{min-height:88px}.nav a,button{min-height:44px}input[type=checkbox],input[type=radio]{width:auto;min-width:22px;min-height:22px}label{margin-bottom:8px}td,th{padding:8px 6px;font-size:13px}.excel-calendar,.table-scroll,.table-wrap{max-width:100%;box-sizing:border-box}.excel-calendar:before{content:"← 横にスワイプできます →";display:block;margin:0 0 6px;font-size:12px;color:var(--muted)}.site-list-toolbar{flex-direction:column;align-items:stretch;gap:8px}.site-list-toolbar__sort{flex:1 1 auto;min-width:0;width:100%}.site-master-table-scroll{display:none}.site-master-mobile-list{display:block}.site-master-table{font-size:12px}.site-master-table__actions-inner button{min-height:44px;padding:8px 12px;font-size:13px}.excel-calendar{margin:0}.excel-calendar-title{grid-template-columns:1fr;gap:4px;margin-bottom:8px}.excel-calendar-title-company{min-width:0;font-size:11px}.excel-calendar-dnd-hint{display:none}.excel-calendar-table--responsive{min-width:640px}.excel-day-cell,.excel-day-col{min-height:112px}.excel-day-body{min-height:72px}.excel-crew-block__delete,.excel-dnd-item__delete{width:36px;height:36px;min-width:36px;min-height:36px;font-size:18px}.excel-crew-block__add-site,.excel-crew-block__assign-toggle,.excel-day-add-crew,.excel-dnd-item__work-edit,.excel-unassigned-suggestions__btn,.excel-visit-add-work{min-height:36px;padding:6px 10px;font-size:12px}.excel-inline-assign button,.excel-inline-assign input,.excel-inline-assign select{min-height:36px;font-size:14px}.excel-hold-banner,.excel-unassigned-panel__header{flex-wrap:wrap;gap:8px}.crew-route-panel{grid-template-columns:1fr}.crew-card--editing fieldset{margin-inline:0}.schedule-editor-panel,.schedule-toolbar-card{padding:12px}.self-attendance-list{display:flex;flex-direction:column;gap:10px}.self-attendance-day{padding:12px;border-radius:10px;background:var(--card);border:1px solid var(--border);border-bottom:none}.self-attendance-day--warn{border-color:#fecaca;background:#fef2f2}.self-attendance-day--draft{border-color:#fcd34d;background:#fffbeb}.self-attendance-day__date{display:block;font-size:16px;font-weight:600;margin-bottom:10px}.self-attendance-day__slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.self-attendance-day__slots--single{grid-template-columns:1fr}.self-attendance-slot{display:flex;flex-direction:column;gap:8px;min-width:0;padding:10px 8px;border-radius:8px;background:var(--bg);border:1px solid var(--border);border-bottom:none}.self-attendance-slot--warn{border-color:#fecaca;background:#fef2f2}.self-attendance-slot--draft{border-color:#fcd34d;background:#fffbeb}.self-attendance-slot__header{display:flex;align-items:center;justify-content:space-between;gap:6px}.self-attendance-slot__date-desktop{display:none}.self-attendance-slot__shift{display:inline-block;font-size:13px;font-weight:600;color:var(--muted);flex:0 0 auto}.self-attendance-slot__status{font-size:12px;text-align:right;flex:1 1 auto;min-width:0}.self-attendance-draft-mark{display:block;margin-left:0;margin-top:2px}.self-attendance-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:6px;gap:6px;width:100%}.self-attendance-actions button{width:100%;min-width:0;min-height:44px;margin-bottom:0;padding:8px 4px;font-size:13px}.self-attendance-warn{text-align:left;font-size:14px}.attendance-grid-view{min-height:44px;font-size:12px}.attendance-grid-day{min-width:44px}.portal-tabs button{min-height:44px}.masters-tab-bar,.schedule-subtabs{display:flex;gap:8px;margin-bottom:16px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch}.masters-tab-bar button,.schedule-subtabs button{flex:0 0 auto;white-space:nowrap}.confirm-dialog{margin:12px;width:min(100%,420px);max-height:calc(100dvh - 24px);overflow:auto}.confirm-dialog__actions{flex-direction:column-reverse;align-items:stretch}.confirm-dialog__actions button{width:100%}.year-month-picker>div{flex:1 1 100%}.recurrence-rule-field__months{grid-template-columns:repeat(3,minmax(0,1fr))}.labor-pay-settings-grid,.labor-pay-settings-grid--wide{grid-template-columns:1fr}.audit-filters{display:flex;flex-direction:column;gap:10px}.audit-filters label{width:100%}.audit-pager{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.audit-pager button{width:100%}.photo-report-preview-backdrop{align-items:flex-end;padding:0}.photo-report-preview{width:100%;max-height:min(92dvh,900px);border-radius:16px 16px 0 0;padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px))}.photo-report-preview__head{flex-wrap:wrap;position:-webkit-sticky;position:sticky;top:0;z-index:2;background:var(--card);padding-top:4px}.photo-report-preview__meta{grid-template-columns:1fr}.photo-report-preview__actions{flex-direction:column-reverse;position:-webkit-sticky;position:sticky;bottom:0;background:var(--card);padding-top:8px;padding-bottom:env(safe-area-inset-bottom,0)}.photo-report-preview__actions button{width:100%}.public-work-report__selectors,.share-link-panel__dates{grid-template-columns:1fr}.share-link-panel__url-row{flex-direction:column;align-items:stretch}.share-link-panel__url{flex:1 1 auto;min-width:0;word-break:break-all}.share-link-panel__actions{display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px}.share-link-panel__actions button{width:100%}.home-howto__footer{justify-content:stretch}.home-howto__detail-btn{width:100%;justify-content:center}.help-page__toc{gap:8px}.toolbar-card{display:flex;flex-direction:column;align-items:stretch;gap:10px}.toolbar-card>.year-month-picker,.toolbar-card>button,.toolbar-card>label,.toolbar-card>p{width:100%;margin:0}.mobile-stack-actions{flex-direction:column;align-items:stretch}.mobile-stack-actions>a,.mobile-stack-actions>button{width:100%;text-align:center}.billing-line-editor input,.billing-line-editor select{min-width:0!important;width:100%}.work-reports-export__stamp{display:flex;flex-direction:column;gap:8px}.work-reports-export__radio{display:flex;align-items:flex-start;gap:10px;line-height:1.4}.work-reports-export__radio input{width:auto;margin-top:2px;flex:0 0 auto}}@media (max-width:480px){.container{padding-inline:10px}.excel-calendar-table--responsive{min-width:560px}.self-attendance-actions,.self-attendance-day__slots{grid-template-columns:1fr}.self-attendance-actions button{font-size:14px;padding:10px 8px}.portal-save-bar button{flex:1 1 100%}.recurrence-rule-field__months{grid-template-columns:repeat(2,minmax(0,1fr))}.nav{width:min(100vw - 36px,320px)}.nav-toggle__label{display:none}.auth-main{max-width:none}}.home-howto__footer{display:flex;justify-content:flex-end;margin-top:8px}.home-howto__detail-btn{text-decoration:none;display:inline-flex;align-items:center;padding:9px 16px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--text);font-weight:500}.home-howto__title{margin-top:0;font-family:var(--font-display),"Hiragino Mincho ProN",serif;font-weight:600;letter-spacing:.03em}.home-howto__steps{padding-left:1.25rem}.home-howto__steps li{margin-bottom:.55rem}.home-page{display:flex;flex-direction:column;gap:4px}.share-link-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:4px}.share-link-panel__title{margin:0;font-family:var(--font-display),"Hiragino Mincho ProN",serif;font-size:1.2rem;font-weight:600;letter-spacing:.03em}.share-link-panel__status{font-size:.78rem;letter-spacing:.04em;padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted);background:#f8fafc}.share-link-panel__status--on{border-color:color-mix(in srgb,var(--ok) 35%,var(--border));color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,#fff)}.share-link-panel__dates{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px;margin-bottom:4px}.share-link-panel__actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.share-link-panel__url-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.share-link-panel__url{flex:1 1 280px;margin-bottom:0;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.csv-import__details{margin:0}.csv-import__summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;font-weight:600;padding:2px 0}.csv-import__summary::-webkit-details-marker{display:none}.csv-import__summary:before{content:"▸";color:var(--muted);margin-right:8px;transition:transform .15s ease}.csv-import__details[open]>.csv-import__summary:before{transform:rotate(90deg);display:inline-block}.csv-import__summary-hint{font-weight:400;font-size:.8rem;color:var(--muted)}.csv-import__details[open] .csv-import__summary{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}.work-reports-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:16px}.work-reports-export__stamp{margin:0 0 14px;padding:10px 12px;border:1px solid var(--border);border-radius:8px}.work-reports-export__stamp legend{padding:0 6px;font-size:.9rem;font-weight:600}.work-reports-export__radio{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.92rem;color:var(--text)}.work-reports-export__radio:last-child{margin-bottom:0}.work-reports-export__radio input{width:auto;margin:0}.work-reports-export__actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.photo-report-preview-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(21,25,30,.48)}.photo-report-preview{width:min(920px,100%);max-height:min(90vh,900px);overflow:auto;margin:0}.photo-report-preview__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.photo-report-preview__head h2{margin:0;font-size:1.15rem}.photo-report-preview__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:10px 16px;gap:10px 16px;margin:0 0 16px}.photo-report-preview__meta div{margin:0}.photo-report-preview__meta dt{font-size:.8rem;color:var(--muted);margin:0 0 2px}.photo-report-preview__meta dd{margin:0;font-weight:600}.photo-report-preview__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.photo-report-preview__item{margin:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fafafa;display:flex;flex-direction:column}.photo-report-preview__item img{display:block;width:100%;height:auto;max-height:min(48vh,440px);object-fit:contain;object-position:center;background:#eef1f4}.photo-report-preview__item figcaption{padding:8px 10px;font-size:.82rem;color:var(--muted);border-top:1px solid var(--border)}.photo-report-preview__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}@media (max-width:640px){.photo-report-preview__grid{grid-template-columns:1fr}}.help-page{display:flex;flex-direction:column;gap:16px}.help-page__toc{display:flex;flex-wrap:wrap;gap:8px 12px;margin:12px 0}.help-page__toc a{font-weight:600}.help-page__section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}.help-page__section-head h2{margin:0}.help-page__step{margin-top:12px}.help-page__step h3{margin:0 0 6px;font-size:1rem}.help-page__step ul{margin:0;padding-left:1.2em}.help-page__step li+li{margin-top:4px}.csv-mapping{margin:16px 0;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.csv-mapping__title{margin:0 0 10px;font-size:1rem}.csv-mapping__grid{display:grid;grid-gap:10px;gap:10px}.csv-mapping__row{display:grid;grid-template-columns:minmax(120px,.9fr) minmax(0,1.4fr);grid-gap:8px;gap:8px;align-items:center;font-size:14px}.csv-mapping__row select{width:100%;margin:0}.csv-mapping__preview{margin-top:14px}@media (max-width:640px){.csv-mapping__row{grid-template-columns:1fr}}.property-overview-upload{margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 5%,#fff) 0,#fff 48%)}.property-overview-upload__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.property-overview-upload__title{margin:0;font-family:var(--font-display),"Hiragino Mincho ProN",serif;font-size:1.05rem;font-weight:600;letter-spacing:.03em}.property-overview-upload__badge{flex:0 0 auto;font-size:.72rem;letter-spacing:.04em;padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted);background:#f8fafc}.property-overview-upload__badge--on{border-color:color-mix(in srgb,var(--ok) 35%,var(--border));color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,#fff)}.property-overview-upload__hint{margin:0 0 12px}.property-overview-upload__current{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;border:1px solid var(--border);background:rgba(255,255,255,.88)}.property-overview-upload__file-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,#fff);border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));color:var(--accent);font-size:.7rem;font-weight:700;letter-spacing:.06em}.property-overview-upload__file-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.property-overview-upload__file-meta a{font-weight:600;word-break:break-all;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.property-overview-upload__empty{padding:14px 12px;border-radius:10px;border:1px dashed var(--border-strong);background:rgba(255,255,255,.55);color:var(--muted);font-size:.92rem}.property-overview-upload__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.property-overview-upload__file,.public-work-report__file{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;transition:border-color .15s ease,background .15s ease}.property-overview-upload__file:hover,.public-work-report__file:hover{border-color:var(--border-strong);background:#f8fafc}.property-overview-upload__file input,.public-work-report__file input{display:none}.public-overview-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:rgba(15,23,32,.52)}.public-overview-modal{width:min(920px,calc(100vw - 24px));max-height:min(92dvh,900px);display:flex;flex-direction:column;margin:0;padding:0;overflow:hidden;border-radius:16px;border:1px solid color-mix(in srgb,#fff 18%,var(--border));background:#fff;box-shadow:0 1px 2px rgba(15,23,32,.08),0 24px 48px rgba(15,23,32,.22);color:var(--text)}.public-overview-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 14px;border-bottom:1px solid #eef2f6;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 6%,#fff) 0,#fff 100%)}.public-overview-modal__heading{min-width:0}.public-overview-modal__eyebrow{margin:0 0 4px;font-size:.72rem;letter-spacing:.12em;color:var(--muted)}.public-overview-modal__title{margin:0;font-family:var(--font-display),"Hiragino Mincho ProN",serif;font-size:clamp(1.05rem,2.8vw,1.35rem);font-weight:600;letter-spacing:.03em;line-height:1.35;word-break:break-word}.public-overview-modal__close{flex:0 0 auto}.public-overview-modal__body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:#f4f6f8}.public-overview-modal__frame{flex:1 1 auto;width:100%;min-height:min(70dvh,680px);border:0;background:#fff}.public-overview-modal__state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:min(42dvh,320px);padding:28px 20px;text-align:center}.public-overview-modal__state--error{color:var(--danger)}.public-overview-modal__empty-title{margin:0;font-family:var(--font-display),"Hiragino Mincho ProN",serif;font-size:1.1rem;font-weight:600}.public-overview-modal__spinner{width:28px;height:28px;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 20%,#d5dce5);border-top-color:var(--accent);animation:overview-spin .8s linear infinite}@keyframes overview-spin{to{transform:rotate(1turn)}}@media (max-width:640px){.public-overview-backdrop{align-items:flex-end;padding:0}.public-overview-modal{width:100%;max-height:min(94dvh,900px);border-radius:18px 18px 0 0}.public-overview-modal__frame{min-height:min(62dvh,560px)}}.public-work-report__date{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;max-width:220px}.public-work-report__sites{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.public-work-report__site{padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--card)}.public-work-report__site-title{font-weight:600;margin-bottom:4px}.public-work-report__work{color:var(--muted);font-size:13px;margin-bottom:8px}.public-work-report__notes{width:100%;margin-bottom:10px}.public-work-report__actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.public-work-report__selectors{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-bottom:10px}.public-work-report__selectors label{display:flex;flex-direction:column;gap:4px;font-size:13px}.public-work-report__selectors select{width:100%}.public-work-report__custom-work{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;font-size:13px}.public-work-report__custom-work input{width:100%}.public-work-report__groups{display:flex;flex-direction:column;gap:12px}.public-work-report__group-title{font-weight:600;margin-bottom:6px}.public-work-report__phase-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}@media (min-width:720px){.public-work-report__phase-row{grid-template-columns:repeat(4,minmax(0,1fr))}}.public-work-report__phase-label{font-size:12px;color:var(--muted);margin-bottom:4px}.public-work-report__photos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-gap:8px;gap:8px}.public-work-report__photos li{display:flex;flex-direction:column;gap:6px}.public-work-report__photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;border:1px solid var(--border)}