/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.hidden{display:none}.inline{display:inline}.table{display:table}.table-row{display:table-row}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--background:#f3f5f0;--surface:#fffefa;--surface-strong:#edf3ec;--text:#172622;--muted:#65756c;--line:#d7dfd4;--primary:#1f6b56;--primary-strong:#12483c;--primary-dark:#12483c;--river:#2d7f91;--marble:#faf7ee;--stone:#bfc9bd;--blue:#2d7f91;--amber:#9c7130;--red:#a33f36;--radius:8px}*{box-sizing:border-box}html{background:var(--background)}body{background:linear-gradient(180deg, #1f6b5624, transparent 310px), repeating-linear-gradient(135deg, #ffffff94 0 18px, #d7dfd447 18px 20px, #faf7ee5c 20px 54px), var(--background);color:var(--text);margin:0;font-family:Microsoft JhengHei,PingFang TC,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.sticky-app-header{z-index:70;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#f3f5f0fa,#f3f5f0eb);margin-bottom:16px;position:sticky;top:0}.topbar{border-radius:var(--radius);background:linear-gradient(135deg, #fffefaf5, #eef5f0f0), var(--surface);border:1px solid #687e7147;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;display:flex;box-shadow:0 12px 30px #2c403a14}.brand-block{min-width:0}.topbar h1,.panel h2,.profile-panel h2,.form-panel h2{margin:0;font-size:24px;line-height:1.25}.eyebrow{color:var(--primary-strong);text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:800}.top-actions{grid-auto-columns:max-content;grid-auto-flow:column;justify-content:end;align-items:center;gap:12px;display:grid}.segmented{border:1px solid var(--line);border-radius:var(--radius);background:#fffefae6;grid-template-columns:repeat(2,minmax(78px,1fr));display:inline-grid;overflow:hidden}.segmented button,.tabbar button{color:var(--muted);background:0 0;border:0;min-height:40px;padding:0 14px;font-weight:700}.top-actions .language-label{border:1px solid var(--line);border-radius:var(--radius);background:#fffefaf0;grid-template-columns:auto minmax(82px,92px);align-items:center;gap:8px;min-height:42px;padding:0 10px;font-size:12px;font-weight:900;display:grid}.top-actions .language-label select{background:0 0;border:0;border-radius:0;min-height:34px;padding:0 2px;font-weight:900}.segmented button.active,.tabbar button.active{background:linear-gradient(135deg, var(--primary), var(--river));color:#fff}.select-label,.language-label,.toolbar label,.form-panel label{color:var(--muted);gap:6px;font-size:13px;font-weight:700;display:grid}.identity-badge,.identity-picker{border:1px solid var(--line);border-radius:var(--radius);background:#fffefaf0;gap:4px;min-width:120px;padding:8px 12px;display:grid}.identity-picker{min-width:240px}.identity-badge span,.identity-picker span{color:var(--muted);font-size:12px;font-weight:700}.identity-badge strong{color:var(--text);font-size:15px}.security-toggle{border-radius:var(--radius);min-height:42px;color:var(--primary-dark);white-space:nowrap;background:#1f6b5614;border:1px solid #1f6b5638;padding:0 14px;font-size:14px;font-weight:900}.security-toggle:hover{background:#1f6b5621;border-color:#1f6b565c}.logout-toggle:hover{background:#a33f3621;border-color:#a33f365c}.identity-picker select{min-height:auto;color:var(--text);background:0 0;border:0;padding:0;font-size:15px;font-weight:900}.admin-login-card{border-radius:var(--radius);background:linear-gradient(135deg,#fff8f5f5,#fffdf8f5);border:1px solid #b423182e;grid-template-columns:minmax(190px,1fr) minmax(220px,300px) auto auto auto;align-items:center;gap:10px;margin-top:10px;padding:12px;display:grid;box-shadow:0 12px 28px #5b371f14}.admin-login-card div{gap:3px;display:grid}.admin-login-card strong{color:var(--text);font-size:15px}.admin-login-card span{color:var(--muted);font-size:12px;font-weight:800}.admin-login-card label{color:var(--muted);gap:4px;font-size:12px;font-weight:900;display:grid}.admin-login-card input{min-height:36px}.admin-login-card button{white-space:nowrap;min-height:36px;padding:0 14px}.ghost-button{border-radius:var(--radius);color:var(--red);background:#fffaf7db;border:1px solid #b4231833;font-weight:900}.ghost-button:hover{background:#b4231814;border-color:#b4231857}.admin-login-card p{color:var(--red);grid-column:1/-1;margin:0;font-size:12px;font-weight:900}.admin-security-card{border-radius:var(--radius);background:linear-gradient(135deg,#f5faf7fa,#fffdf8f5);border:1px solid #1f6b5633;grid-template-columns:minmax(140px,.64fr) minmax(200px,1fr) auto minmax(130px,.68fr) minmax(140px,.72fr) minmax(140px,.72fr) auto auto;align-items:end;gap:10px;margin-top:10px;padding:12px;display:grid;box-shadow:0 12px 28px #2c403a14}.admin-security-title{align-self:center;gap:3px;display:grid}.admin-security-title strong{color:var(--primary-dark);font-size:16px;font-weight:1000}.admin-security-title span,.admin-security-card label{color:var(--muted);font-size:12px;font-weight:900}.admin-security-card label{gap:4px;display:grid}.admin-security-card input{min-height:36px}.admin-security-card button{min-height:36px;padding:0 12px}.admin-security-hint,.admin-security-error,.admin-security-message{border-radius:6px;grid-column:1/-1;margin:0;padding:8px 10px;font-size:12px;font-weight:900}.admin-security-hint{color:#7c541e;background:#fff8e3db;border:1px solid #9c71303d;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-security-hint strong{color:#8f2f28;letter-spacing:.08em;font-size:16px}.admin-security-hint span{color:#7c541e;font-size:12px}.admin-security-error{color:var(--red);background:#b4231814;border:1px solid #b423182e}.admin-security-message{color:var(--primary-dark);background:#1f6b5614;border:1px solid #1f6b562e}.resident-login-workspace{align-items:stretch}.resident-login-card{grid-template-columns:minmax(300px,1.25fr) repeat(2,minmax(190px,.8fr)) auto;align-items:end;gap:14px;padding:16px;display:grid}.resident-login-title{align-self:center}.resident-login-title h2{color:var(--primary-dark);margin:0;font-size:24px;font-weight:1000}.resident-login-title p{color:var(--muted);margin:6px 0 0;font-size:13px;font-weight:850;line-height:1.45}.resident-login-card label{color:var(--muted);gap:6px;font-size:13px;font-weight:900;display:grid}.resident-login-card input{min-height:42px}.resident-login-card .primary{min-height:42px;padding:0 24px}.resident-login-error{color:var(--red);background:#b4231814;border:1px solid #b423182e;border-radius:6px;grid-column:1/-1;margin:0;padding:8px 10px;font-size:13px;font-weight:900}input,select,textarea{border:1px solid var(--line);border-radius:var(--radius);width:100%;min-height:42px;color:var(--text);background:#fff;padding:0 12px}textarea{resize:vertical;min-height:132px;padding:12px}.tabbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#f3f5f0f5,#f3f5f0e6);border-bottom:1px solid #687e712e;gap:8px;padding:12px 0;display:flex;overflow-x:auto}.tabbar button{border-radius:var(--radius);white-space:nowrap;background:#fffefae0;border:1px solid #687e7140;align-items:center;gap:6px;display:inline-flex;position:relative}.tabbar button:has(.admin-review-alert){padding-right:28px}.admin-review-alert{color:#fff;pointer-events:none;background:#c83d38;border:2px solid #fffdf7;border-radius:50%;place-items:center;width:17px;height:17px;font-size:11px;font-weight:950;line-height:1;display:grid;position:absolute;top:4px;right:5px}.tab-alert{background:var(--red);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;font-size:12px;font-weight:900;line-height:1;display:inline-flex}.workspace{gap:16px;display:grid}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.simple-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.metric,.panel,.form-panel,.profile-panel{border-radius:var(--radius);background:linear-gradient(#fffefafa,#faf7eef5);border:1px solid #687e713d;box-shadow:0 8px 20px #2d423a0d}.metric{gap:8px;min-height:118px;padding:16px;display:grid}.metric span,.metric small,.panel-heading span,.panel-heading p,.table-row small,.compact-item small,.request-item p,.request-item small,.key-card p,.profile-panel dt,.profile-panel dd,.key-card dt,.key-card dd{color:var(--muted)}.metric strong{font-size:28px;line-height:1}.hr-dashboard{gap:22px}.hr-dashboard-heading{background:var(--forest);color:#fff;border-radius:22px;justify-content:space-between;align-items:flex-end;gap:18px;padding:22px 24px;display:flex;box-shadow:0 14px 34px #173d3024}.hr-dashboard-heading h1{margin:3px 0 0;font-size:clamp(24px,3vw,34px)}.hr-dashboard-heading .eyebrow,.hr-dashboard-heading time{color:#d8e9e1}.hr-dashboard-heading time{font-size:14px;font-weight:800}.dashboard-section{gap:12px;display:grid}.dashboard-section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.dashboard-section-heading h2{color:var(--forest);margin:0;font-size:20px}.dashboard-section-heading span{color:var(--muted);font-size:13px;font-weight:800}.dashboard-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.dashboard-card-grid.todo-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-stat-card{min-height:138px;color:var(--forest);text-align:left;background:#fff;border:1px solid #dbe4df;border-radius:20px;align-content:space-between;padding:18px;display:grid;box-shadow:0 10px 26px #173d3010}.dashboard-stat-card>span{color:var(--muted);align-items:center;gap:8px;font-size:14px;font-weight:900;display:flex}.dashboard-stat-card>span b{font-size:20px;line-height:1}.dashboard-stat-card>strong{font-size:38px;line-height:1.05}.dashboard-stat-card>strong small{color:var(--muted);margin-left:5px;font-size:14px}.dashboard-link-card{width:100%;font:inherit;cursor:pointer;border-left-width:6px;transition:border-color .16s,transform .16s,box-shadow .16s}.dashboard-link-card:focus-visible{outline-offset:3px;outline:3px solid #d9af38}.dashboard-link-card:active{transform:translateY(0)}.dashboard-link-card.todo-checkin{border-left-color:#d9af38}.dashboard-link-card.todo-checkout{border-left-color:#4b82c3}.dashboard-link-card.todo-new-hire{border-left-color:#dd7a2b}.dashboard-link-card.todo-repair{border-left-color:#c84f4f}.dashboard-link-card:hover{border-color:#75a08e;transform:translateY(-2px);box-shadow:0 14px 30px #173d301a}.dashboard-link-card small{color:var(--primary);font-weight:900}.dashboard-text-card>strong{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:20px;line-height:1.35;display:-webkit-box;overflow:hidden}.empty-berth-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.empty-berth-item{background:#f8fbf8;border:1px solid #dbe4df;border-radius:16px;gap:6px;padding:16px;display:grid}.empty-berth-item strong{color:var(--forest);font-size:18px}.empty-berth-item span{color:var(--primary);font-weight:900}.empty-berth-item small{color:var(--muted);line-height:1.5}.dashboard-grid,.split-grid,.resident-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;display:grid}.split-grid{grid-template-columns:minmax(210px,.48fr) minmax(0,1.52fr);gap:12px}.overview-summary-grid{grid-template-columns:minmax(170px,.26fr) minmax(0,1.74fr);gap:14px}.overview-capacity-panel{order:2}.overview-room-panel{order:1;min-width:0}.overview-room-list{gap:8px}.overview-room-list .room-row{cursor:default;grid-template-columns:minmax(58px,1fr) minmax(54px,auto);gap:8px;padding:10px 12px}.overview-room-list .status{display:none}.overview-room-list .room-meter{text-align:right;align-self:center;min-width:48px}.cabin-plan-panel{justify-self:stretch;width:100%;max-width:100%;overflow-x:hidden}.cabin-plan-panel .panel-heading{width:100%;min-width:100%}.cabin-room-strip{border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffefaf5;border:1px solid #687e7133;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%;margin-top:8px;padding:6px;display:grid;overflow:visible;box-shadow:0 10px 24px #2d423a14}.cabin-room-chip{border:1px solid var(--line);min-width:0;min-height:36px;color:var(--text);text-align:center;white-space:nowrap;background:#fffefaf0;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 10px;display:inline-flex}.cabin-room-chip.active{background:#0f766e1a;border-color:#0f766e70}.cabin-room-chip strong{font-size:14px;font-weight:900}.cabin-room-chip .room-divider{color:var(--muted);font-size:13px;font-weight:800}.cabin-room-chip .room-meter{color:var(--text);text-align:center;font-size:14px;font-weight:900}.source-banner{border-radius:var(--radius);background:#0f766e14;border:1px solid #0f766e3d;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.source-banner h2{margin:0;font-size:18px}.source-banner p{color:var(--muted);margin:6px 0 0}.source-stats{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.source-stats span{min-height:32px;color:var(--primary-strong);white-space:nowrap;background:#fff;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:900}.panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.panel-heading h2,.form-panel h2{font-size:18px}.panel-heading p{margin:6px 0 0}.toolbar{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(220px,1fr) 140px 160px auto;align-items:end;gap:12px;padding:14px;display:grid}.primary,.secondary,.danger-button{border-radius:var(--radius);border:1px solid #0000;min-height:42px;padding:0 14px;font-weight:800}.secondary.link-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.primary{background:var(--primary);color:#fff}.secondary{border-color:var(--line);background:var(--surface);color:var(--text)}.danger-button{color:var(--red);background:#b4231814;border-color:#b4231840}.room-list,.request-list,.compact-list,.sector-stack{gap:8px;display:grid}.room-row,.compact-item,.request-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-items:center;gap:10px;display:grid}.room-row{text-align:left;grid-template-columns:minmax(0,1fr) auto 58px;width:100%;padding:8px 10px}.room-row.active{background:#0f766e12;border-color:#0f766e73}.room-row strong,.room-row small,.table-row strong,.table-row small{display:block}.room-meter{text-align:right;font-weight:800}.status{white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.status.good,.berth.good,.floor-cell.good{color:var(--primary-strong);background:#0f766e1f}.status.registered{color:#3c4c56;background:#f1f5f6;border-color:#ccd8dd}.status.kind-berth{color:#0b6157;background:#e9f5f2;border-color:#b9ddd7}.status.kind-wash{color:#2f5c96;background:#eef3fb;border-color:#d5ddec}.status.kind-locker{color:#836017;background:#fbf3df;border-color:#e4d0a6}.status.borrowed-berth,.status.borrowed-wash{color:#374151;background:#ffffffeb;border-color:#37415157}.status.solid,.berth.solid,.floor-cell.solid{color:var(--blue);background:#2563eb1f}.status.warn,.berth.warn,.floor-cell.warn{color:var(--amber);background:#b4530924}.status.danger,.berth.danger,.floor-cell.danger{color:var(--red);background:#b423181f}.status.muted,.berth.muted,.floor-cell.muted{background:var(--surface-strong);color:var(--muted)}.berth-grid{grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:8px;display:grid}.berth{text-align:center;border:1px solid #0000000a;border-radius:6px;place-items:center;min-height:56px;padding:5px;display:grid}.berth strong{font-size:14px}.berth span{color:currentColor;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.floor-plan-stack{gap:10px;width:100%;max-width:100%;display:grid}.floor-plan-layout{border-top:1px solid var(--line);gap:8px;width:100%;max-width:100%;padding-top:10px;display:grid}.floor-plan-layout:first-child{border-top:0;padding-top:0}.floor-plan-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.floor-plan-heading h3{color:var(--text);margin:0;font-size:16px;font-weight:950}.floor-plan-heading p{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.5}.floor-plan-heading span{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#ffffffd1;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900}.floor-main-title{flex-wrap:wrap;align-items:baseline;gap:10px;margin:0;display:flex}.floor-main-title strong{color:var(--primary-dark);font-size:22px;font-weight:1000}.floor-main-title span{color:var(--text);font-size:16px;font-weight:950}.floor-main-title span:last-child{color:var(--muted);font-size:15px;font-weight:900}.plan-heading-actions{align-items:center;gap:8px;display:inline-flex}.plan-heading-actions>span{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#ffffffd1;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:950}.plan-heading-actions .sync-chip.dirty,.plan-heading-actions .sync-chip.saving{color:#6d4c17;background:#f7e9cbe6;border-color:#9c713061}.plan-heading-actions .sync-chip.saved{color:var(--primary-strong);background:#e2f1ebe6;border-color:#1f6b5642}.plan-heading-actions .sync-chip.error,.plan-heading-actions .sync-error{color:var(--red);background:#fde8e4e6;border-color:#a33f3652}.identity-legend{border-radius:var(--radius);background:#ffffffb8;border:1px solid #687e712e;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.identity-legend strong{color:var(--text);margin-right:4px;font-size:15px;font-weight:1000}.identity-chip{border:1px solid var(--identity-line,var(--line));background:var(--identity-bg,#ffffffdb);min-height:30px;color:var(--identity-text,var(--text));cursor:pointer;font:inherit;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:0 10px;font-size:13px;font-weight:950;display:inline-flex}.identity-chip:hover,.identity-chip.active{border-color:var(--identity-dot,var(--primary));box-shadow:0 0 0 2px var(--identity-dot,var(--primary))}@supports (color:color-mix(in lab, red, red)){.identity-chip:hover,.identity-chip.active{box-shadow:0 0 0 2px color-mix(in srgb, var(--identity-dot,var(--primary)) 22%, transparent)}}.identity-chip:hover,.identity-chip.active{transform:translateY(-1px)}.identity-chip.active{background:linear-gradient(180deg, #ffffff9e, #fff3), var(--identity-bg,#ffffffdb)}.identity-chip:before{background:var(--identity-dot,currentColor);content:"";border-radius:999px;width:8px;height:8px}.identity-overview-chip{min-height:30px;color:var(--primary-dark);cursor:pointer;font:inherit;white-space:nowrap;background:#0d786c1a;border:1px solid #0d786c40;border-radius:999px;align-items:center;padding:0 12px;font-size:13px;font-weight:1000;display:inline-flex}.identity-overview-chip.active,.identity-overview-chip:hover{background:#0d786c2e;border-color:#0d786c61}.identity-managed-chip{border:1px solid var(--identity-line,var(--line));background:var(--identity-bg,#ffffffdb);min-height:30px;color:var(--identity-text,var(--text));border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.identity-managed-chip.active{border-color:var(--identity-dot,var(--primary));box-shadow:0 0 0 2px var(--identity-dot,var(--primary))}@supports (color:color-mix(in lab, red, red)){.identity-managed-chip.active{box-shadow:0 0 0 2px color-mix(in srgb, var(--identity-dot,var(--primary)) 22%, transparent)}}.identity-managed-chip button{min-height:28px;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;font-size:13px;font-weight:950;display:inline-flex}.identity-managed-chip button:first-child{gap:5px;padding:0 8px 0 10px}.identity-managed-chip button:first-child:before{background:var(--identity-dot,currentColor);content:"";border-radius:999px;width:8px;height:8px}.identity-managed-chip button:last-child{border-left:1px solid var(--identity-dot,var(--line))}@supports (color:color-mix(in lab, red, red)){.identity-managed-chip button:last-child{border-left:1px solid color-mix(in srgb, var(--identity-dot,var(--line)) 25%, #fff)}}.identity-managed-chip button:last-child{color:#9f2f25;background:#ffffff70;justify-content:center;min-width:30px;padding:0 8px;font-size:18px;line-height:1}.identity-managed-chip button:last-child:hover{background:#b423181a}.identity-custom-chip{--identity-bg:var(--custom-color)}@supports (color:color-mix(in lab, red, red)){.identity-custom-chip{--identity-bg:color-mix(in srgb, var(--custom-color) 15%, white)}}.identity-custom-chip{--identity-dot:var(--custom-color);--identity-line:var(--custom-color)}@supports (color:color-mix(in lab, red, red)){.identity-custom-chip{--identity-line:color-mix(in srgb, var(--custom-color) 42%, #fff)}}.identity-custom-chip{--identity-text:#1f2933;border:1px solid var(--identity-line);background:var(--identity-bg);min-height:30px;color:var(--identity-text);border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.identity-custom-chip.active{border-color:var(--custom-color);box-shadow:0 0 0 2px var(--custom-color)}@supports (color:color-mix(in lab, red, red)){.identity-custom-chip.active{box-shadow:0 0 0 2px color-mix(in srgb, var(--custom-color) 22%, transparent)}}.identity-custom-chip button{min-height:28px;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;font-size:13px;font-weight:950;display:inline-flex}.identity-custom-chip button:first-child{gap:5px;padding:0 8px 0 10px}.identity-custom-chip button:first-child:before{background:var(--custom-color);content:"";border-radius:999px;width:8px;height:8px}.identity-custom-chip button:last-child{border-left:1px solid var(--custom-color)}@supports (color:color-mix(in lab, red, red)){.identity-custom-chip button:last-child{border-left:1px solid color-mix(in srgb, var(--custom-color) 34%, #fff)}}.identity-custom-chip button:last-child{color:#9f2f25;background:#ffffff7a;justify-content:center;min-width:30px;padding:0 8px;font-size:18px;line-height:1}.identity-custom-chip button:last-child:hover{background:#b423181a}.identity-custom-form{background:#ffffffe6;border:1px solid #687e712e;border-radius:999px;align-items:center;gap:7px;margin-left:4px;padding:3px;display:inline-flex;box-shadow:0 8px 20px #14282114}.identity-custom-form input[type=text]{width:136px;min-width:0;height:32px;color:var(--text);background:#f6f8f6d1;border:0;border-radius:999px;outline:none;padding:0 12px;font-size:13px;font-weight:950}.identity-custom-form input[type=text]:focus{box-shadow:inset 0 0 0 2px #0d786c2e}.identity-color-picker{border:1px solid var(--custom-color);align-items:center;gap:6px;min-height:32px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.identity-color-picker{border:1px solid color-mix(in srgb, var(--custom-color) 42%, #fff)}}.identity-color-picker{background:var(--custom-color);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.identity-color-picker{background:color-mix(in srgb, var(--custom-color) 14%, #fff)}}.identity-color-picker{color:var(--custom-color)}@supports (color:color-mix(in lab, red, red)){.identity-color-picker{color:color-mix(in srgb, var(--custom-color) 68%, #1f2933)}}.identity-color-picker{cursor:pointer;padding:0 8px;font-size:12px;font-weight:950}.identity-color-picker:before{background:var(--custom-color);content:"";border-radius:999px;width:14px;height:14px;box-shadow:inset 0 0 0 1px #ffffffa6}.identity-color-picker input[type=color]{opacity:0;width:1px;height:1px;position:absolute}.identity-custom-form button{min-height:32px;color:var(--primary-dark);cursor:pointer;background:#0d786c1f;border:1px solid #0d786c47;border-radius:999px;padding:0 11px;font-size:13px;font-weight:950}.identity-custom-form .identity-custom-cancel{color:var(--muted);background:#f6f8f6d1;border-color:#687e712e}.identity-add-button{min-height:30px;color:var(--primary-dark);cursor:pointer;font:inherit;white-space:nowrap;background:#ffffffbd;border:1px dashed #0d786c59;border-radius:999px;align-items:center;padding:0 12px;font-size:13px;font-weight:950;display:inline-flex}.identity-add-button:hover{background:#0d786c1a;border-style:solid}.identity-stats-hint{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:850}.identity-stats-assignment{border-top:1px solid #687e7129;flex-wrap:wrap;align-items:center;gap:10px;width:100%;margin-top:4px;padding-top:8px;display:flex}.identity-stats-selection{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:850;display:inline-flex}.identity-stats-selection strong{color:var(--primary-dark);background:#0d786c1a;border-radius:999px;margin:0;padding:5px 10px;font-size:13px}.identity-stats-assignment label{color:var(--text);align-items:center;gap:7px;font-size:12px;font-weight:950;display:inline-flex}.identity-stats-assignment select{min-height:34px;color:var(--text);font:inherit;background:#fff;border:1px solid #0d786c47;border-radius:999px;outline:none;padding:0 32px 0 12px}.identity-stats-assignment select:focus{border-color:#0d786c85;box-shadow:0 0 0 3px #0d786c1f}.identity-stats-result{color:var(--primary-dark);background:#ecf4f0e6;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.identity-rename-button{background:#f6f8f6e0;border-style:solid}.identity-rename-button.active{background:#0d786c1f;border-color:#0d786c6b}.identity-label-form{border-top:1px solid #687e7129;flex-wrap:wrap;align-items:center;gap:7px;width:100%;margin-top:4px;padding-top:8px;display:flex}.identity-label-form label{background:#ffffffdb;border:1px solid #687e712e;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:3px 5px 3px 10px;display:inline-flex}.identity-label-form label span{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:950}.identity-label-form input{width:122px;min-width:0;height:28px;color:var(--text);background:#f6f8f6d1;border:1px solid #0d786c29;border-radius:999px;padding:0 10px;font-size:13px;font-weight:950}.identity-label-form input:focus{border-color:#0d786c61;outline:none;box-shadow:0 0 0 2px #0d786c1f}.identity-result{border-radius:var(--radius);background:#ffffffc7;border:1px solid #687e7133;grid-template-columns:auto auto auto minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;display:grid}.identity-result>strong{color:var(--text);font-size:13px;font-weight:950}.identity-result>span{color:var(--muted);font-size:12px;font-weight:900}.identity-result-delete{color:#9f2f25;cursor:pointer;white-space:nowrap;background:#b4231814;border:1px solid #b423182e;border-radius:999px;place-items:center;min-width:30px;min-height:28px;padding:0 8px;font-size:18px;font-weight:950;line-height:1;display:inline-grid}.identity-result-delete:hover{background:#b4231821;border-color:#b4231852}.identity-result-list{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.identity-result-pill,.identity-result-empty{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:900}.identity-result-empty{color:var(--muted)}.cell-editor{border-radius:var(--radius);background:linear-gradient(#ffffffe6,#f9fcf9db);border:1px solid #0d786c33;grid-template-columns:120px minmax(520px,1fr) minmax(250px,.48fr);align-items:start;gap:10px 14px;padding:10px;display:grid}.cell-editor>strong{color:var(--primary-dark);white-space:nowrap;align-self:start;font-size:14px;font-weight:1000}.cell-editor-title{grid-area:1/1/span 2;padding-top:28px}.borrower-edit-group{border-radius:12px;grid-column:2;grid-template-columns:118px repeat(3,minmax(120px,1fr));align-items:end;gap:8px;padding:8px;display:grid}.borrower-edit-group.berth{background:#e8f4f08c;border:1px solid #0d786c24}.borrower-edit-group.wash{background:#faf3e7b3;border:1px solid #9a652429}.borrower-edit-group>strong{color:var(--primary-dark);white-space:nowrap;align-self:center;font-size:13px;font-weight:1000}.borrower-edit-group.wash>strong{color:#8a4b12}.cell-editor-settings{grid-column:3;grid-template-columns:minmax(130px,1fr) minmax(110px,.78fr);align-items:end;gap:8px;padding:8px 0;display:grid}.cell-editor-actions{grid-column:3;grid-template-columns:repeat(3,minmax(72px,1fr));align-self:center;gap:8px;display:grid}.cell-editor label{color:var(--muted);gap:4px;font-size:11px;font-weight:950;display:grid}.cell-editor input,.cell-editor select{border:1px solid var(--line);min-width:0;height:34px;color:var(--text);background:#ffffffe6;border-radius:999px;outline:none;padding:0 11px;font-size:13px;font-weight:900}.cell-editor select{cursor:pointer}.status-marker-multiselect{min-width:0;color:var(--muted);font-size:11px;font-weight:950;position:relative}.status-marker-multiselect summary{cursor:pointer;border:1px solid var(--line);background:#ffffffe6;border-radius:999px;align-content:center;gap:1px;height:34px;padding:0 12px;list-style:none;display:grid}.status-marker-multiselect summary::-webkit-details-marker{display:none}.status-marker-multiselect summary span{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.status-marker-options{z-index:20;border:1px solid var(--line);background:var(--surface);border-radius:14px;gap:5px;min-width:210px;padding:9px;display:grid;position:absolute;top:calc(100% + 5px);right:0;box-shadow:0 12px 28px #17262229}.status-marker-options label{cursor:pointer;color:var(--text);border-radius:9px;align-items:center;gap:8px;padding:7px 8px;font-size:12px;display:flex}.status-marker-options label:hover{background:#0d786c14}.status-marker-options input{width:16px;height:16px;min-height:0;accent-color:var(--primary);padding:0}.cell-editor input:focus,.cell-editor select:focus{border-color:#0d786c57;box-shadow:0 0 0 2px #0d786c1a}.cell-editor-actions .primary,.cell-editor-actions .secondary,.cell-editor-actions .danger-lite{border-radius:999px;min-height:34px;padding:0 12px;font-size:13px;font-weight:950}.danger-lite{color:#9f2f25;cursor:pointer;background:#b4231814;border:1px solid #b423182e}.danger-lite:hover{background:#b4231821}.plan-title-meta{color:var(--muted);margin-left:10px;font-size:14px;font-weight:850}.floor-table-scroll{width:100%;max-width:100%;overflow-x:auto}.floor-table{border-radius:var(--radius);background:linear-gradient(#fffefaf5,#faf7eeeb);border:1px solid #687e713d;gap:6px;width:100%;min-width:820px;padding:10px;display:grid}.floor-section{gap:4px;width:100%;max-width:100%;display:grid}.floor-section.has-door{max-width:none}.floor-zone-strip{color:#fffdfa;text-align:center;background:linear-gradient(90deg,#6f3a0d,#8b4a13);border:1px solid #532c0c5c;border-radius:999px;justify-content:center;justify-self:stretch;align-items:center;width:100%;max-width:none;min-height:18px;padding:2px 8px;display:flex}.floor-zone-strip,.floor-inline-zone-strip{background:linear-gradient(90deg,#7b3d0b,#8e4b12);border-color:#532c0c6b}.floor-section-gap{color:#8a5a23;letter-spacing:0;border-block:1px solid #9a652429;place-items:center;min-height:26px;font-size:14px;font-weight:950;display:grid}.floor-section-gap span{background:#fffefac2;border-radius:999px;align-items:center;min-height:18px;padding:0 12px;display:inline-flex}.floor-zone-wall-strip{color:#fffdfa;text-align:center;background:linear-gradient(#a2a2a2,#8f8f8f);border:1px solid #53535361;border-radius:2px;place-items:center;width:100%;min-height:20px;padding:2px 8px;display:grid}.floor-zone-wall-strip span{color:#fffdfa;letter-spacing:0;font-size:16px;font-weight:950}.floor-section.has-door .floor-zone-strip{margin-right:0}.floor-zone-row{grid-template-columns:38px repeat(var(--floor-columns,7), minmax(0, 1fr));align-items:center;gap:3px;width:100%;display:grid}.floor-table.has-door-plan>.floor-section>.floor-zone-row{width:auto;margin-right:92px}.floor-table.floor-room-e-cabin.has-door-plan>.floor-section>.floor-zone-row{width:100%;margin-right:0}.floor-zone-strip span{color:#fffdfa;font-size:15px;font-weight:950}.floor-zone-strip small{color:#fffdfa;font-size:11px;font-weight:900}.floor-inline-zone-strip{color:#fffdfa;text-align:center;background:linear-gradient(90deg,#7b3d0b,#8e4b12);border:1px solid #532c0c6b;border-radius:999px;justify-content:center;align-items:center;width:100%;min-height:18px;padding:2px 8px;display:flex}.floor-inline-zone-strip span{color:#fffdfa;font-size:15px;font-weight:950}.floor-deck-stack{gap:3px;width:100%;display:grid}.floor-section-body{gap:3px;display:grid}.floor-section-body.with-door{grid-template-columns:minmax(0,1fr) 82px;align-items:stretch;gap:10px}.floor-door-marker{width:82px;min-height:86px;color:var(--text);border:0;background:0 0;border-left:2px solid #687e7157;border-radius:0;align-self:center;place-items:center;font-size:16px;font-weight:950;display:grid;position:relative}.floor-door-marker:before{display:none}.floor-deck-row,.floor-wall-row{grid-template-columns:38px repeat(var(--floor-columns,7), minmax(0, 1fr));align-items:stretch;gap:3px;display:grid}.floor-deck-row.g-cabin-gap-before{margin-top:28px}.floor-wall-row span{color:#fffdfa;letter-spacing:0;background:linear-gradient(#a2a2a2,#8f8f8f);border:1px solid #53535361;border-radius:2px;place-items:center;width:100%;min-height:20px;font-size:16px;font-weight:950;display:grid}.floor-deck-label{border:1px solid var(--line);min-height:36px;color:var(--muted);background:#f6f7f4e6;border-radius:3px;place-items:center;font-size:11px;font-weight:950;display:grid}.floor-deck-label.upper{color:var(--primary-dark);background:#deefecd1;border-color:#0d786c40}.floor-deck-label.lower{color:#7a4a18;background:#f7eedee6;border-color:#9a652440}.floor-deck-label.locker{color:#6d4a20;background:#f1e8d7eb;border-color:#78522540}.floor-cell-grid{grid-column:2/-1;gap:3px;padding-bottom:2px;display:grid;overflow:visible}.floor-cell{border:1px solid var(--line);background:var(--surface);min-height:70px;color:var(--text);text-align:center;border-radius:4px;grid-template-rows:24px minmax(30px,1fr);align-content:center;gap:6px;padding:4px 5px;display:grid;position:relative}.floor-cell strong{align-self:end;font-size:18px;line-height:1}.floor-cell-number{min-width:28px;color:inherit;background:#ffffffb8;border:1px solid #17262224;border-radius:999px;justify-self:start;padding:2px 7px;box-shadow:0 1px 2px #17262214}.floor-cell span,.floor-cell small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.floor-cell span{align-self:center;font-size:17px;font-weight:950;line-height:1.1}.floor-cell-person{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px;max-width:100%;display:inline-flex}.floor-cell-person .floor-cell-borrowers{white-space:normal;gap:2px;width:100%;font-size:12px;line-height:1.05;display:grid;overflow:visible}.floor-cell-borrowers b{justify-content:center;align-items:center;gap:4px;min-width:0;display:flex}.floor-cell-borrowers b>i{color:#31564b;background:#31564b1c;border-radius:999px;flex:none;padding:2px 4px;font-size:9px;font-style:normal;font-weight:1000}.floor-cell-borrowers b>span{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.identity-stats-picker{min-height:36px;color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:900;display:inline-flex}.identity-stats-picker select{border:1px solid var(--line);background:#fff;border-radius:6px;min-height:32px;padding:0 8px}.floor-cell-person b{min-width:0;color:inherit;text-overflow:ellipsis;white-space:normal;font-size:17px;font-weight:950;line-height:1.15;overflow:hidden}.floor-cell.key-borrowed .floor-cell-person,.floor-cell.wash-borrowed .floor-cell-person,.floor-cell.wardrobe-borrowed .floor-cell-person{padding-inline:5px}.floor-cell.key-borrowed .floor-cell-person b,.floor-cell.wash-borrowed .floor-cell-person b,.floor-cell.wardrobe-borrowed .floor-cell-person b{font-size:13px;font-weight:900;line-height:1.2}.floor-cell small{color:var(--muted);align-self:start;font-size:9px;font-weight:800;line-height:1.1}.floor-cell .floor-cell-person small{color:inherit;letter-spacing:.01em;opacity:.9;flex:0 auto;align-self:auto;font-size:15px;font-weight:950;line-height:1}.identity-fulltime{--identity-bg:#f4f4f5;--identity-dot:#111827;--identity-line:#1118274d;--identity-text:#111827}.identity-empty{--identity-bg:#eef5f1;--identity-dot:#6b8b80;--identity-line:#5775694d;--identity-text:#31564b}.identity-pt{--identity-bg:#dbeafe;--identity-dot:#2563eb;--identity-line:#2563eb5c;--identity-text:#1d4ed8}.identity-winter-pt{--identity-bg:#cffafe;--identity-dot:#0891b2;--identity-line:#0891b257;--identity-text:#155e75}.identity-foreign-pt{--identity-bg:#fdf2f8;--identity-dot:#be185d;--identity-line:#be185d57;--identity-text:#9d174d}.identity-intern-jan{--identity-bg:#dcfce7;--identity-dot:#16a34a;--identity-line:#16a34a5c;--identity-text:#166534}.identity-intern-july{--identity-bg:#ecfccb;--identity-dot:#65a30d;--identity-line:#65a30d5c;--identity-text:#3f6212}.identity-intern-indonesia{--identity-bg:#fed7aa;--identity-dot:#ea580c;--identity-line:#ea580c5c;--identity-text:#9a3412}.identity-intern-indonesia-4{--identity-bg:#fee2e2;--identity-dot:#dc2626;--identity-line:#dc26265c;--identity-text:#991b1b}.identity-intern-indonesia-5{--identity-bg:#ede9fe;--identity-dot:#7c3aed;--identity-line:#7c3aed5c;--identity-text:#5b21b6}.identity-intern-indonesia-6{--identity-bg:#fce7f3;--identity-dot:#db2777;--identity-line:#db27775c;--identity-text:#9d174d}.identity-intern-vietnam{--identity-bg:#ccfbf1;--identity-dot:#0d9488;--identity-line:#0d94885c;--identity-text:#115e59}.identity-intern{--identity-bg:#e0f2fe;--identity-dot:#0284c7;--identity-line:#0284c75c;--identity-text:#075985}.identity-leave{--identity-bg:#e5e7eb;--identity-dot:#4b5563;--identity-line:#4b556357;--identity-text:#374151}.floor-cell.identity-empty,.floor-cell.identity-fulltime,.floor-cell.identity-pt,.floor-cell.identity-winter-pt,.floor-cell.identity-foreign-pt,.floor-cell.identity-intern-jan,.floor-cell.identity-intern-july,.floor-cell.identity-intern-indonesia,.floor-cell.identity-intern-indonesia-4,.floor-cell.identity-intern-indonesia-5,.floor-cell.identity-intern-indonesia-6,.floor-cell.identity-intern-vietnam,.floor-cell.identity-intern,.floor-cell.identity-leave{border-color:var(--identity-line);background:var(--identity-bg);color:var(--identity-text);box-shadow:inset 0 3px 0 var(--identity-dot)}.floor-cell.identity-custom-assigned{--identity-dot:var(--custom-color);--identity-text:#1f2933;border-color:var(--custom-color)}@supports (color:color-mix(in lab, red, red)){.floor-cell.identity-custom-assigned{border-color:color-mix(in srgb, var(--custom-color) 40%, #fff)}}.floor-cell.identity-custom-assigned{background:var(--custom-color)}@supports (color:color-mix(in lab, red, red)){.floor-cell.identity-custom-assigned{background:color-mix(in srgb, var(--custom-color) 15%, #fff)}}.floor-cell.identity-custom-assigned{color:#1f2933;cursor:pointer;box-shadow:inset 0 3px 0 var(--custom-color)}.floor-cell[role=button]{cursor:pointer}.floor-cell.identity-empty span,.floor-cell.identity-fulltime span,.floor-cell.identity-pt span,.floor-cell.identity-winter-pt span,.floor-cell.identity-foreign-pt span,.floor-cell.identity-intern-jan span,.floor-cell.identity-intern-july span,.floor-cell.identity-intern-indonesia span,.floor-cell.identity-intern-indonesia-4 span,.floor-cell.identity-intern-indonesia-5 span,.floor-cell.identity-intern-indonesia-6 span,.floor-cell.identity-intern-vietnam span,.floor-cell.identity-intern span,.floor-cell.identity-leave span,.floor-cell.identity-custom-assigned span{color:var(--identity-text)}.key-marker-legend{border-top:1px solid #687e7129;flex:100%;align-items:center;gap:8px;margin-top:4px;padding-top:8px;display:inline-flex}.key-marker-legend strong{color:var(--muted);margin:0;font-size:13px;font-weight:1000}.key-marker-chip,.floor-key-marker{border:1px solid var(--key-line);background:var(--key-bg);color:var(--key-text);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;font-weight:1000;display:inline-flex}.key-marker-chip{cursor:pointer;min-height:24px;padding:0 9px;font-size:12px}.key-marker-chip.active{box-shadow:0 0 0 2px #fffefaf5, 0 0 0 4px var(--key-line);transform:translateY(-1px)}.key-marker-result{background:linear-gradient(135deg,#fffaecf5,#fffefaf5);border-color:#9c71303d}.floor-key-marker{min-width:32px;height:20px;padding:0 6px;font-size:11px;font-style:normal;line-height:1;position:absolute;top:3px;right:4px;box-shadow:0 2px 5px #1726221f}.floor-key-marker-combined{color:#31564b;letter-spacing:-.02em;text-overflow:ellipsis;background:#fffffff5;border-color:#264a4038;max-width:calc(100% - 48px);padding:0 7px;font-size:10px;overflow:hidden}.floor-key-markers{z-index:2;flex-wrap:wrap;justify-content:flex-end;gap:2px;max-width:calc(100% - 42px);display:flex;position:absolute;top:3px;right:4px}.floor-key-markers .floor-key-marker{position:static}.key-return,.key-pickup,.key-borrowed,.wash-borrowed,.wardrobe-borrowed{--key-bg:#fffffff0;--key-line:#3741516b;--key-text:#374151}.floor-key-marker.key-borrowed,.floor-key-marker.wash-borrowed,.floor-key-marker.wardrobe-borrowed{box-shadow:0 2px 5px #1726221a}.floor-cell.key-marker-selected{outline:2px solid var(--key-text);outline-offset:1px;box-shadow:inset 0 3px 0 var(--identity-dot), 0 0 0 3px var(--key-text)}@supports (color:color-mix(in lab, red, red)){.floor-cell.key-marker-selected{box-shadow:inset 0 3px 0 var(--identity-dot), 0 0 0 3px color-mix(in srgb, var(--key-text) 18%, transparent)}}.floor-cell.key-marker-dimmed{opacity:.2;filter:grayscale(.65)}.floor-cell.key-marker-selected .floor-key-marker{transform:scale(1.04)}.floor-cell.identity-selected{outline:2px solid var(--identity-dot);outline-offset:1px;box-shadow:inset 0 3px 0 var(--identity-dot), 0 0 0 3px var(--identity-dot)}@supports (color:color-mix(in lab, red, red)){.floor-cell.identity-selected{box-shadow:inset 0 3px 0 var(--identity-dot), 0 0 0 3px color-mix(in srgb, var(--identity-dot) 18%, transparent)}}.floor-cell.identity-dimmed{opacity:.28;filter:grayscale(.55)}.sector-row{grid-template-columns:24px minmax(190px,.92fr) minmax(520px,1.2fr);align-items:center;gap:14px;display:grid}.sector-breakdown{grid-template-columns:repeat(5,minmax(82px,auto));justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:grid}.sector-breakdown span{min-height:24px;color:var(--text);white-space:nowrap;background:#fffefab8;border:1px solid #687e712e;border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:900;display:inline-flex}.sector-breakdown span:first-child{color:var(--primary-dark);background:#1f6b5614;border-color:#1f6b5633}.sector-progress-wrap{grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:8px;display:grid}.sector-progress-wrap>b{color:var(--primary-dark);font-variant-numeric:tabular-nums;text-align:right;font-size:13px}.progress{background:var(--surface-strong);border-radius:999px;height:12px;overflow:hidden}.progress span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--blue));height:100%;display:block}.compact-item{grid-template-columns:minmax(0,1fr) auto;padding:12px}.plain-heading{margin-bottom:10px}.simple-usage-panel{padding-bottom:10px}.simple-usage-list{gap:8px;display:grid}.simple-usage-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(92px,.8fr) minmax(260px,1.4fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.simple-usage-row.needs-attention{background:#b453090d;border-color:#b4530947}.simple-usage-title{gap:4px;display:grid}.simple-usage-title strong{font-size:18px}.simple-usage-title small{color:var(--muted)}.simple-usage-counts{grid-template-columns:repeat(3,minmax(72px,1fr));gap:8px;display:grid}.simple-usage-counts span{border:1px solid var(--line);min-height:38px;color:var(--text);text-align:center;background:#eef3f4b8;border-radius:6px;padding:8px 10px;font-size:13px;font-weight:900}.key-sector-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.key-sector-card{border:1px solid var(--line);border-radius:var(--radius);background:#fffffff5;align-content:start;gap:12px;padding:14px;display:grid}.usage-card-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.usage-card-heading h3{margin:0;font-size:16px}.usage-card-heading strong{color:var(--text);font-size:28px;line-height:1}.mini-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.mini-stat-grid span{border:1px solid var(--line);background:var(--surface);min-height:54px;color:var(--muted);border-radius:6px;padding:8px;font-size:12px;font-weight:800}.mini-stat-grid b{color:var(--text);font-size:18px;line-height:1.1;display:block}.key-sample-list{gap:8px;display:grid}.key-sample-list div{border-top:1px solid var(--line);padding-top:8px}.key-sample-list strong,.key-sample-list small{display:block}.key-sample-list small,.key-sample-list p{color:var(--muted);margin:0}.data-table{display:grid;overflow-x:auto}.table-row{border-bottom:1px solid var(--line);grid-template-columns:1.2fr 1fr .8fr .6fr .9fr 1fr;align-items:center;gap:12px;min-width:820px;padding:12px 10px;display:grid}.table-row>span{overflow-wrap:anywhere;min-width:0}.locker-table .table-row{grid-template-columns:56px 72px 92px 100px 1fr 1fr 104px 1fr 1fr;min-width:1120px}.temporary-table .table-row{grid-template-columns:56px 72px 132px 120px 1fr 1.4fr;min-width:880px}.resident-table .table-row{grid-template-columns:120px 1.2fr 150px 88px 72px 168px;min-width:920px}.table-row.selected{border-left:4px solid var(--red);background:linear-gradient(90deg,#fde8e5b8,#fffefafa)}.resident-row-actions{grid-template-columns:repeat(2,minmax(64px,1fr));gap:8px;display:grid}.resident-row-actions .primary,.resident-row-actions .secondary{min-height:34px;padding:0 10px;font-size:13px}.stats-export-workspace{align-items:stretch;gap:12px}.stats-export-hero{background:linear-gradient(135deg, #1f6b5614, #faf7eef0), var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.stats-export-hero h2{color:var(--primary-dark);margin:0;font-size:28px;font-weight:1000}.stats-export-hero .primary:disabled{cursor:not-allowed;opacity:.55}.stats-export-panel{padding:0;overflow:hidden}.stats-toolbar{background:#fffdf8a8;border-bottom:1px solid #687e7129;grid-template-columns:repeat(2,minmax(170px,220px)) minmax(0,1fr);align-items:end;gap:12px;margin:0;padding:14px 16px;display:grid}.stats-toolbar label{color:var(--muted);gap:6px;font-size:13px;font-weight:900;display:grid}.stats-toolbar select{border:1px solid var(--line);border-radius:var(--radius);min-height:42px;color:var(--text);background:#ffffffe6;padding:0 12px;font-weight:900}.stats-annual-block{background:linear-gradient(135deg,#e7f1ed8a,#fffefae0);border-bottom:1px solid #687e7124;gap:10px;padding:14px 16px 16px;display:grid}.stats-section-title{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 14px;display:flex}.stats-section-title strong{color:var(--primary-dark);font-size:18px;font-weight:1000}.stats-section-title span{color:#66746e;font-size:13px;font-weight:900}.stats-table{background:#ffffffc2;border:0;border-radius:0;display:grid;overflow-x:auto}.stats-table-row{min-width:980px;color:var(--text);border-bottom:1px solid #687e7124;grid-template-columns:minmax(78px,.7fr) minmax(84px,.72fr) minmax(106px,.9fr) minmax(84px,.72fr) minmax(80px,.7fr) minmax(96px,.82fr) minmax(132px,1.06fr) minmax(94px,.82fr) minmax(126px,1fr);align-items:center;gap:0;padding:0;font-size:14.5px;font-weight:850;display:grid}.stats-table-row>span,.stats-table-row>strong{text-align:center;white-space:nowrap;border-right:1px solid #687e711a;justify-content:center;justify-self:center;align-items:center;width:100%;min-height:48px;padding:0 12px;display:inline-flex}.stats-table-row>strong:first-child,.stats-table-row>span:first-child{text-align:left;justify-content:flex-start;justify-self:start}.stats-table-row>span:last-child{border-right:0}.stats-table-row:last-child{border-bottom:0}.stats-table-head{z-index:1;color:var(--primary-dark);background:linear-gradient(#edf3ecfa,#f9fcf9f5);font-size:13px;font-weight:1000;position:sticky;top:0}.stats-table-head span{color:var(--primary-dark);letter-spacing:0}.stats-table-row strong{color:var(--primary-dark);font-size:15px;font-weight:1000}.annual-stats-table{border-radius:var(--radius);border:1px solid #687e7124;overflow:auto}.annual-stats-table .stats-table-row{grid-template-columns:minmax(74px,.6fr) minmax(66px,.52fr) minmax(86px,.65fr) minmax(88px,.68fr) minmax(88px,.68fr) minmax(96px,.74fr) minmax(96px,.74fr) minmax(104px,.8fr) minmax(108px,.82fr) minmax(138px,1fr) minmax(108px,.82fr) minmax(126px,.92fr);min-width:1220px}.monthly-breakdown-title{margin-top:16px}.monthly-stats-table.with-month-column .stats-table-row{grid-template-columns:minmax(96px,.8fr) minmax(78px,.7fr) minmax(84px,.72fr) minmax(106px,.9fr) minmax(84px,.72fr) minmax(80px,.7fr) minmax(96px,.82fr) minmax(132px,1.06fr) minmax(94px,.82fr) minmax(126px,1fr);min-width:1080px}.monthly-sector-summary-table{border-radius:var(--radius);border:1px solid #687e7124;overflow:auto}.monthly-sector-summary-table .stats-table-row{grid-template-columns:minmax(96px,.78fr) repeat(7,minmax(104px,1fr));min-width:860px}.monthly-sector-cell{gap:4px}.monthly-sector-cell strong{color:var(--ink);font-size:14px;font-weight:1000}.monthly-sector-cell small{color:var(--muted);font-size:12px;font-weight:850}.registration-layout{grid-template-columns:minmax(320px,.8fr) minmax(0,1.4fr);align-items:start;gap:16px;display:grid}.admin-borrow-layout{gap:12px;display:grid}.admin-borrow-form{background:linear-gradient(135deg, #fffefafa, #f4f9f6f0), var(--surface);border-color:#1f6b562e;gap:9px;padding:12px}.admin-borrow-form .panel-heading{border-bottom:0;grid-template-columns:minmax(132px,auto) auto;align-items:center;gap:12px;padding-bottom:0;display:grid}.admin-borrow-form .panel-heading h2{font-size:18px;line-height:1.2}.admin-borrow-form .primary{min-width:118px;min-height:40px}.admin-borrow-form .registration-form-grid{grid-template-columns:minmax(130px,.9fr) minmax(150px,1.15fr) minmax(130px,1fr) minmax(92px,.7fr) minmax(130px,.9fr) minmax(180px,1.2fr);gap:9px}.admin-borrow-form .registration-form-grid label{gap:5px;font-size:12px}.admin-borrow-form input,.admin-borrow-form select{min-height:38px}.resident-registration-stack{gap:18px;display:grid}.company-assignment-panel{background:linear-gradient(135deg, #fffdf7fa, #f6f9f4f5), var(--surface);border-color:#a33f3640;padding:12px}.checkout-panel .panel-heading,.borrow-form-panel .panel-heading{border-bottom:1px solid #687e7124;padding-bottom:14px}.checkout-panel .panel-heading p,.borrow-form-panel .panel-heading p{color:#475950;margin-top:5px;font-weight:800}.checkout-panel .panel-heading h2,.borrow-form-panel .panel-heading h2,.form-panel .panel-heading h2,.registration-list-panel .panel-heading h2{color:var(--primary-strong);font-size:22px;font-weight:950}.company-assignment-column{border-radius:var(--radius);background:#ffffffd1;border:1px solid #687e712e;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 12px;display:flex}.company-assignment-column strong{color:var(--ink);flex:auto;font-size:18px;font-weight:900;line-height:1.6}.company-assignment-column>.origin-chip{border-width:2px;flex:none;min-height:32px;padding:0 12px}.checkout-upload:hover{border-color:#0f766e47;box-shadow:0 10px 20px #1f363012}.checkout-panel{background:linear-gradient(135deg, #fffaf2f0, #f6f9f4f5), var(--surface);border-color:#1f6b5638;overflow:hidden;box-shadow:0 18px 36px #1f363017}.checkout-heading{background:linear-gradient(135deg,#1f6b561f,#fff7ebbd);grid-template-columns:minmax(0,1fr) auto;align-items:center;margin:-18px -18px 14px;padding:20px 18px 16px;display:grid}.checkout-title-stack{gap:5px;display:grid}.checkout-title-stack h2{margin:0;line-height:1.2}.borrow-form-panel .panel-heading h2,.checkout-title-stack h2,.resident-page-panel .panel-heading h2{color:#0d3f35;align-items:center;min-height:34px;padding-left:13px;font-size:26px;font-weight:950;line-height:1.15;display:inline-flex;position:relative}.borrow-form-panel .panel-heading h2:before,.checkout-title-stack h2:before,.resident-page-panel .panel-heading h2:before{content:"";background:linear-gradient(#1f6b56,#8f2f28);border-radius:999px;width:5px;position:absolute;top:4px;bottom:4px;left:0}.checkout-kicker{margin:0;font-size:13px;color:#8f2f28!important;font-weight:950!important}.checkout-keynote{background:#fff1f1;border:1.5px solid #a33f3661;border-radius:999px;width:fit-content;padding:8px 14px;font-size:15px;line-height:1.45;display:block;color:#8f2f28!important;font-weight:950!important}.checkout-note-strip{border-radius:var(--radius);color:#705026;background:#fff8ebd1;border:1px solid #9c713038;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:14px;padding:13px 14px;font-size:15px;font-weight:800;line-height:1.7;display:flex}.checkout-note-strip strong{color:#8f2f28;font-size:15px;font-weight:950}.borrow-form-panel{background:linear-gradient(145deg, #fffffff5, #f2f8f4ed), var(--surface);border-color:#0f766e2e;overflow:hidden;box-shadow:0 16px 34px #1f363014}.borrow-form-panel .panel-heading{background:linear-gradient(135deg,#0f766e1a,#fffaf280);align-items:center;margin:-18px -18px 16px;padding:18px}.borrow-form-panel .panel-heading h2{color:var(--primary-strong)}.borrow-form-panel .primary,.checkout-panel .primary{min-width:138px;box-shadow:0 10px 18px #0f766e2e}.checkout-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.checkout-upload{border-radius:var(--radius);background:linear-gradient(#fffffff5,#f6f9f4e0);border:1px solid #1f6b5633;gap:14px;padding:16px;display:grid;box-shadow:0 14px 28px #2d423a14}.checkout-upload-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;display:grid}.checkout-step-no{width:38px;height:38px;color:var(--primary-strong);background:linear-gradient(135deg,#e7f1ed,#fffefa);border:1px solid #1f6b5638;border-radius:999px;justify-content:center;align-items:center;font-size:14px;font-weight:950;display:inline-flex}.checkout-upload-tag{color:#b91c1c;background:#fff1f1;border-radius:999px;align-items:center;min-height:24px;padding:0 9px;font-size:12px;font-weight:950;display:inline-flex}.checkout-upload-body{border-radius:var(--radius);background:#fffefadb;border:1px dashed #1f6b5638;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px;display:grid}.checkout-example-link{border-radius:var(--radius);background:#eff6ff;border:1px solid #2563eb33;min-height:38px;padding:0 12px;text-decoration:none}.checkout-photo-picker span{color:#40524a;background:#fff;border-color:#1f6b562e;font-weight:900}.checkout-upload strong,.checkout-upload small{display:block}.checkout-upload strong{color:var(--ink);font-size:17px;font-weight:950}.checkout-upload small{color:#52645b;margin-top:4px;font-size:12px;font-weight:850;line-height:1.5}.registration-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.registration-notice{border-radius:var(--radius);color:#8f2f28;background:linear-gradient(135deg,#fde8e5f2,#fffaf2f5),#fff7f2;border:1px solid #a33f3652;gap:10px;padding:14px 16px 14px 18px;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 18px #8f2f2812}.registration-notice:before{content:"";background:linear-gradient(#8f2f28,#c07248);width:4px;position:absolute;inset:0 auto 0 0}.registration-notice strong{color:#fff;background:#8f2f28;border-radius:999px;align-items:center;width:fit-content;min-height:28px;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex}.registration-notice ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.registration-notice li{color:#7b352e;margin:0;padding-left:16px;font-size:13px;font-weight:800;line-height:1.6;position:relative}.registration-notice li:before{content:"";background:#b45645;border-radius:999px;width:6px;height:6px;position:absolute;top:.72em;left:1px}.borrow-form-panel .registration-notice{color:#8f2f28;background:linear-gradient(135deg,#fde8e5e6,#fffaf2e0),#fff7f2;border-color:#a33f3657;box-shadow:0 8px 18px #8f2f280f}.borrow-form-panel .registration-notice:before{background:linear-gradient(#8f2f28,#c07248)}.borrow-form-panel .registration-notice strong{color:#fff;background:#8f2f28}.borrow-form-panel .registration-notice li{color:#8f2f28}.borrow-form-panel .registration-notice li:before{background:#b45645}.registration-agreement{border-radius:var(--radius);color:#7b352e;background:#fff8f2bd;border:1px solid #8f2f283d;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:12px 14px;font-size:14px;font-weight:900;line-height:1.55;display:grid}.registration-agreement input{accent-color:#8f2f28;width:18px;height:18px;margin:2px 0 0}.registration-agreement span{min-width:0}.registration-form-grid label{color:var(--muted);gap:6px;font-size:13px;font-weight:700;display:grid}.borrow-form-panel .registration-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.borrow-form-panel .registration-form-grid label{border-radius:var(--radius);background:#ffffffad;border:1px solid #687e7129;padding:10px}.borrow-form-panel .registration-form-grid label:focus-within{border-color:#0f766e61;box-shadow:0 0 0 3px #0f766e14}.form-message{border-radius:6px;margin:0;padding:10px 12px;font-weight:800}.form-message.good{color:var(--primary-strong);background:#0f766e1a}.form-message.warn{color:var(--amber);background:#b453091f}.registration-tools{grid-template-columns:1fr;align-items:center;gap:10px;margin-bottom:12px;display:grid}.registration-tools.compact{grid-template-columns:1fr}.borrow-admin-summary{margin:-2px 0 10px;display:grid}.borrow-admin-summary span{color:#40524a;background:#e7f1edb8;border:1px solid #1f6b562e;border-radius:999px;align-items:center;gap:7px;width:fit-content;min-height:34px;padding:0 12px;font-size:13px;font-weight:900;display:inline-flex}.borrow-admin-summary em{color:#40524a75;font-style:normal;font-weight:1000}.borrow-admin-summary strong{color:var(--primary-strong);font-size:17px;font-weight:1000}.borrow-sector-pills{grid-template-columns:repeat(8,minmax(0,1fr));gap:7px;margin:0 0 12px;display:grid}.borrow-sector-pills button{color:#465851;background:#ffffffb8;border:1px solid #687e712e;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:38px;font-weight:950;display:inline-flex}.borrow-sector-pills button.active{color:#fff;background:linear-gradient(135deg,#1f6b56fa,#30808bf5);border-color:#1f6b5661;box-shadow:0 8px 18px #1f6b561f}.borrow-sector-pills strong{min-width:24px;height:22px;color:var(--primary-strong);background:#e7f1ede6;border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:12px;font-weight:1000;display:inline-flex}.borrow-sector-pills button.active strong{background:#ffffffeb}.filter-pills{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.filter-pills button{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:36px;color:var(--muted);padding:0 12px;font-weight:900}.filter-pills button.active{border-color:var(--primary);background:linear-gradient(135deg, var(--primary), var(--river));color:#fff}.borrow-type-pills{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:-2px 0 12px;display:flex}.borrow-type-summary{justify-content:flex-start;margin:-2px 0 10px}.borrow-type-pills button{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:34px;color:var(--muted);align-items:center;gap:7px;padding:0 12px;font-weight:900;display:inline-flex}.borrow-type-pills strong{min-width:23px;height:21px;color:var(--primary-strong);background:#e7f1ede6;border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:12px;font-weight:1000;display:inline-flex}.borrow-type-pills button.active{border-color:var(--primary);background:linear-gradient(135deg, var(--primary), var(--river));color:#fff}.borrow-type-pills button.active strong{background:#ffffffeb}.registration-list,.borrow-sector-group{gap:8px;display:grid}.borrow-sector-heading{border:0;border-left:4px solid var(--primary);width:fit-content;color:var(--primary-strong);background:0 0;border-radius:0;align-items:center;padding:2px 0 2px 8px;display:inline-flex}.borrow-sector-heading strong{font-size:16px;font-weight:1000}.borrow-sector-heading span{color:#566860;font-size:13px;font-weight:950}.borrow-admin-row{border-radius:var(--radius);background:linear-gradient(#fffefafa,#f7faf7f5);border:1px solid #687e7133;grid-template-columns:minmax(250px,1.15fr) minmax(160px,.65fr) minmax(92px,auto);align-items:center;gap:8px;padding:12px 14px;display:grid}.borrow-admin-item,.borrow-admin-person,.borrow-admin-state{gap:4px;min-width:0;display:grid}.borrow-admin-item{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 12px}.borrow-admin-item .status{grid-row:span 2;justify-content:center;min-width:92px}.borrow-admin-item strong{color:var(--ink);font-size:18px;font-weight:1000;line-height:1.25}.borrow-admin-person span,.borrow-admin-state small{color:#5b6a62;font-size:13px;font-weight:850}.borrow-admin-person strong{color:var(--ink);font-size:19px;font-weight:1000}.borrow-admin-state{text-align:right;justify-items:end}.borrow-admin-state .status{justify-content:center;min-width:76px}.borrow-admin-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.borrow-admin-actions input{border:1px solid var(--line);background:#fffffff2;border-radius:999px;width:112px;height:34px;padding:0 12px;font-weight:850}.borrow-admin-actions button{min-height:34px;padding:0 12px;font-size:13px}.registration-row{border-radius:var(--radius);background:linear-gradient(#fffefafa,#f6f9f4f5);border:1px solid #687e7138;grid-template-columns:92px minmax(120px,.9fr) minmax(220px,1.3fr) 88px 82px;align-items:center;gap:10px;padding:12px;display:grid}.registration-row.resident-row{grid-template-columns:92px minmax(120px,.72fr) minmax(190px,1fr) 88px minmax(260px,1.1fr)}.registration-row strong,.registration-row small{display:block}.registration-detail{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.origin-chip{color:#b91c1c;letter-spacing:0;background:#fff1f1;border:1.5px solid #dc2626;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex;box-shadow:inset 0 0 0 1px #dc26261f}.cancel-upload{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.temporary-cancel{border-radius:var(--radius);background:linear-gradient(#fffbf4f5,#f8f4ebe6);border:1px solid #9c713033;grid-template-columns:minmax(0,1fr);gap:8px;padding:10px;display:grid}.temporary-cancel-copy{gap:3px;display:grid}.temporary-cancel-copy strong{color:#8f2f28;font-size:14px;font-weight:950}.temporary-cancel-copy small{color:#6f5123;font-size:12px;font-weight:850;line-height:1.45}.temporary-cancel .danger-button{width:100%;min-height:38px}.temporary-cancel .example-link{justify-self:start}.photo-picker{display:grid;position:relative}.photo-picker input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.photo-picker span{border:1px solid var(--line);border-radius:var(--radius);min-height:38px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;background:#fff;align-items:center;padding:0 10px;font-size:13px;font-weight:800;display:flex;overflow:hidden}.cancel-upload .danger-button{min-height:38px}.photo-rule,.review-photo-rule{color:#6f5123;background:#9c713014;border-left:3px solid #9c71308c;border-radius:6px;margin:0;padding:8px 10px;font-size:12px;font-weight:800;line-height:1.5}.photo-rule{flex-wrap:wrap;align-items:center;gap:5px 10px;display:flex}.photo-rule span{flex:100%}.cancel-upload .photo-rule{grid-column:1/-1}.example-link{color:#1d4ed8;text-underline-offset:3px;background:0 0;border:0;min-height:auto;padding:0;font-size:12px;font-weight:900;text-decoration:underline}.example-link:hover{color:#1e40af}.photo-guide-modal{z-index:80;background:#1726227a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.photo-guide-dialog{border-radius:var(--radius);background:linear-gradient(180deg, #fffefafc, #faf7eefa), var(--surface);border:1px solid #687e7152;width:min(980px,100%);max-height:min(88vh,900px);padding:16px;overflow:auto;box-shadow:0 24px 70px #17262242}.photo-guide-heading{align-items:center}.photo-guide-gallery{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.photo-guide-required{border-radius:var(--radius);color:#8f2f28;background:#fde8e5b8;border:1px solid #a33f3647;margin:-4px 0 14px;padding:10px 12px;font-size:13px;font-weight:900}.photo-guide-photo{border-radius:var(--radius);background:#fffefa;border:1px solid #687e7138;display:grid;overflow:hidden}.photo-guide-photo img{object-fit:contain;background:#f2efe6;width:100%;height:320px}.photo-guide-caption{border-top:1px solid #687e7129;gap:8px;padding:12px;display:grid}.photo-guide-caption-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.requirement-chip{color:#8f2f28;white-space:nowrap;background:#fde8e5;border:1px solid #a33f366b;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.photo-guide-caption h3,.photo-guide-caption p{margin:0}.photo-guide-caption h3{font-size:15px}.photo-guide-caption p{color:var(--muted);font-size:13px;font-weight:700;line-height:1.55}.registration-row small,.empty-state{color:var(--muted)}.empty-state{border:1px dashed var(--line);border-radius:var(--radius);text-align:center;margin:0;padding:16px}.table-row.header{color:var(--muted);font-size:13px;font-weight:900}.key-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.key-card{border:1px solid var(--line);border-radius:var(--radius);gap:12px;min-height:220px;padding:14px;display:grid}.key-card h3,.request-item h3{margin:0;font-size:16px}.key-card dl,.profile-panel dl{gap:10px;margin:0;display:grid}.key-card dl div,.profile-panel dl div{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding-top:10px;display:flex}.key-card p{margin:0}.request-item{grid-template-columns:minmax(0,1fr) auto;padding:14px}.request-actions{grid-template-columns:repeat(2,minmax(92px,auto));gap:8px;display:grid}.request-actions.review-actions{grid-template-columns:repeat(2,minmax(104px,auto))}.request-actions.repair-actions{grid-template-columns:repeat(2,minmax(92px,auto));align-content:start}.repair-admin-panel{border-color:#1f6b563d}.repair-item{background:linear-gradient(135deg,#eff7f3e6,#fffefaf5);border-color:#1f6b562e}.repair-reason{color:var(--text);font-size:16px;font-weight:900}.repair-reply-box{color:var(--muted);grid-column:1/-1;gap:6px;font-size:13px;font-weight:900;display:grid}.repair-reply-box textarea{resize:vertical;min-height:86px;padding:10px 12px}.admin-reply-note{color:var(--primary-strong);background:#1f6b5612;border-left:4px solid #1f6b5673;border-radius:4px;padding:8px 10px;font-weight:900}.processed-review-item{background:linear-gradient(135deg,#fffefafa,#f1f6f2f0);border-color:#687e7133}.review-stack{gap:16px;display:grid}.form-panel{gap:14px;display:grid}.file-name{color:var(--primary-strong);margin:0;font-weight:800}.profile-panel{background:var(--surface);color:var(--text)}.profile-panel .eyebrow,.profile-panel dt{color:var(--muted)}.profile-panel dd{color:var(--text)}.assignment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (width<=1080px){.dashboard-card-grid,.empty-berth-list,.metric-grid,.simple-metric-grid,.admin-login-card,.admin-security-card,.resident-login-card,.key-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.split-grid,.registration-layout,.company-assignment-column,.checkout-grid,.resident-grid{grid-template-columns:1fr}.toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.split-grid{grid-template-columns:minmax(180px,.42fr) minmax(0,1.58fr)}.overview-summary-grid{grid-template-columns:1fr}.admin-borrow-form .registration-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.borrow-sector-pills{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=720px){.app-shell{width:min(100% - 12px,1480px);padding-top:8px}.hr-dashboard-heading{flex-direction:column;align-items:flex-start;padding:19px 18px}.dashboard-section-heading{flex-direction:column;align-items:flex-start;gap:4px}.dashboard-card-grid,.dashboard-card-grid.todo-card-grid,.empty-berth-list{grid-template-columns:1fr}.dashboard-stat-card{min-height:116px}.sticky-app-header{margin-bottom:10px;padding-bottom:6px}.topbar{border-radius:10px;grid-template-columns:1fr;align-items:stretch;gap:12px;padding:14px;display:grid}.brand-block{width:100%}.topbar h1{font-size:20px;line-height:1.25}.eyebrow{margin-bottom:4px;font-size:10px}.panel-heading{flex-direction:column;align-items:stretch}.checkout-heading{grid-template-columns:1fr}.checkout-heading .primary{width:100%}.top-actions,.split-grid,.overview-summary-grid,.toolbar,.metric-grid,.admin-security-card,.stats-summary-grid,.stats-toolbar,.simple-metric-grid,.key-grid,.key-sector-grid,.assignment-grid{grid-template-columns:1fr;width:100%}.top-actions{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.top-actions>*{min-height:38px}.top-actions .segmented{flex:100%;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.segmented button,.tabbar button{min-height:38px;padding:0 10px;font-size:13px}.top-actions .language-label{flex:150px;grid-template-columns:38px minmax(0,1fr);min-height:38px;padding:0 8px}.top-actions .language-label select{min-height:30px}.identity-badge{flex:100%;width:100%;min-width:0;padding:7px 10px}.security-toggle{flex:96px;min-height:38px;padding:0 10px;font-size:13px}.tabbar{grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:6px;padding:8px 0;display:grid;overflow:visible}.tabbar button{white-space:normal;justify-content:center;min-width:0}.cabin-room-strip{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:5px;margin-top:6px;padding:5px}.cabin-room-chip{gap:4px;min-height:34px;padding:5px 6px}.cabin-room-chip strong,.cabin-room-chip .room-meter{font-size:13px}.identity-picker{width:100%;min-width:0}.identity-custom-form{border-radius:var(--radius);flex-wrap:wrap;width:100%}.identity-custom-form input[type=text]{flex:160px;width:auto}.identity-result{grid-template-columns:auto auto}.identity-result-list{grid-column:1/-1}.cell-editor{grid-template-columns:1fr}.cell-editor-title,.borrower-edit-group,.cell-editor-settings,.cell-editor-actions{grid-area:auto/1}.cell-editor-title{padding-top:0}.borrower-edit-group,.cell-editor-settings,.cell-editor-actions,.simple-usage-row,.simple-usage-counts,.admin-login-card,.resident-login-card,.admin-borrow-form .panel-heading,.admin-borrow-form .registration-form-grid,.registration-form-grid,.registration-tools,.borrow-admin-table-head,.borrow-admin-row,.company-assignment-column,.checkout-grid,.checkout-upload-body,.registration-row,.registration-row.resident-row,.temporary-cancel,.cancel-upload,.borrow-admin-item{grid-template-columns:1fr}.borrow-admin-item .status{grid-row:auto;justify-self:start}.borrow-admin-state{text-align:left;justify-items:start}.borrow-admin-actions{justify-content:flex-start}.borrow-sector-pills{grid-template-columns:repeat(2,minmax(0,1fr))}.checkout-upload-head{grid-template-columns:auto minmax(0,1fr)}.checkout-upload-tag{grid-column:1/-1;justify-self:start}.floor-section-body.with-door{grid-template-columns:1fr}.floor-table.has-door-plan>.floor-section>.floor-zone-row{width:100%;margin-right:0}.floor-door-marker{min-height:38px}.floor-door-marker:before{display:none}.filter-pills{justify-content:flex-start}.toolbar{display:grid}.room-row,.request-item,.compact-item{grid-template-columns:1fr}.source-banner{flex-direction:column;align-items:stretch}.source-stats{justify-content:flex-start}.request-actions{grid-template-columns:1fr}}:root{--forest:#103b31;--deep:#082c25;--cream:#f8f5ec;--sage:#dce7dc;--orange:#ea7413;--ink:#18312b;--background:var(--cream);--surface:#fff;--surface-strong:#e9f0e7;--text:var(--ink);--muted:#71827d;--line:#dfe4df;--primary:var(--forest);--primary-strong:var(--deep);--primary-dark:var(--forest);--river:var(--forest);--marble:#fffdf8;--stone:#c6d2cc;--blue:#436158;--amber:#bd5a11;--accent:var(--orange);--radius:12px}html,body{background:var(--cream)}body{color:var(--ink);font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,Arial,sans-serif}.app-shell{width:100%;margin:0;padding:0 0 62px}.sticky-app-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f8f5ecf5;margin-bottom:30px;padding:0;top:0;box-shadow:0 8px 24px #173d3014}.topbar{color:#fff;background:linear-gradient(110deg, #0c3d32, var(--deep));min-height:96px;box-shadow:none;border:0;border-bottom:1px solid #ffffff14;border-radius:0;gap:34px;padding:12px clamp(34px,6vw,86px)}.topbar h1{color:#fff;letter-spacing:.04em;font-size:24px;font-weight:900}.brand{color:#fff;align-items:center;gap:24px;min-width:0;display:flex}.brand-logo-image{object-fit:contain;flex:none;width:154px;height:64px;display:block}.brand-divider{opacity:.75;border-left:1px solid #89a098;height:44px}.system-name{color:#fff;letter-spacing:.04em;white-space:nowrap;flex-direction:column;display:flex}.system-name-wrap{align-items:center;gap:8px;min-width:0;display:inline-flex}.dormitory-building-icon{color:#fff;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 20px;width:20px;height:20px;display:block}.system-name strong{font-size:24px;font-weight:900;line-height:1.2}.system-name small{color:#b9cec6;letter-spacing:.08em;margin-top:3px;font-size:11px;font-weight:800}.top-actions{background:#ffffff0d;border:1px solid #ffffff1f;border-radius:999px;justify-content:flex-end;align-items:center;gap:12px;margin-left:auto;padding:6px;display:flex;box-shadow:inset 0 1px #ffffff12}.top-actions>*{min-height:42px}.language-picker{color:#dbe9e3;white-space:nowrap;align-items:center;gap:9px;padding-left:8px;font-size:12px;font-weight:800;display:flex}.language-picker select{color:#fff;background:#123e34;border:1px solid #86a29a;border-radius:12px;outline:0;min-width:132px;padding:9px 30px 9px 12px}.language-picker option{color:#173d34;background:#fff}.header-identity{color:#fff;white-space:nowrap;border-left:1px solid #ffffff24;align-content:center;gap:2px;min-width:74px;padding:0 4px 0 14px;line-height:1.15;display:grid}.header-identity strong{font-size:12px;font-weight:900}.header-identity span{color:#b9cec6;font-size:10px;font-weight:800}.segmented{background:0 0;border:0;border-radius:999px}.topbar nav button{color:#edf6f2;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:9px;padding:10px 14px;font-size:15px;font-weight:800;transition:all .2s;display:flex}.topbar nav button:hover,.topbar nav button.active,.security-toggle:hover{color:#f3b06d;background:#ffffff12;border-color:#ffffff24}.top-actions>.security-toggle:first-child{background:var(--orange);color:#fff;border-color:#0000;box-shadow:0 7px 16px #9f470c47}.top-actions>.security-toggle:first-child:hover{color:#fff;background:#ee861b}.top-actions .language-label{color:#dbe9e3;background:0 0;border:0;border-radius:999px;min-height:42px;padding:0 4px 0 8px;font-size:12px}.top-actions .language-label select{color:#fff;background:#123e34;border:1px solid #86a29a;border-radius:12px;min-width:118px;min-height:36px;padding:7px 28px 7px 10px}.top-actions .language-label option{color:#17362e;background:#fff}.identity-badge{background:#ffffff12;border-color:#ffffff24;border-radius:16px}.identity-badge span{color:#b9cec6}.identity-badge strong{color:#fff}.logout-toggle{color:#edf6f2;background:0 0;border-color:#ffffff24}.tabbar,.cabin-room-strip,.admin-login-card,.admin-security-card{width:min(1420px,100% - 40px);margin-left:auto;margin-right:auto}.tabbar{background:0 0;border:0;gap:8px;padding:12px 0 0}.tabbar button{color:#436158;background:#ffffffeb;border:1px solid #d2d8d3;border-radius:999px;min-height:42px;box-shadow:0 6px 18px #173d3012}.tabbar button:hover{background:#eef3eb}.tabbar button.active{border-color:var(--forest);background:var(--forest);color:#fff;box-shadow:0 6px 14px #103b3133}.workspace{gap:20px;width:min(1420px,100% - 40px);margin:0 auto}.metric-grid,.simple-metric-grid{gap:16px}.metric,.panel,.form-panel,.profile-panel,.resident-login-card{background:#fff;border:1px solid #dfe4df;border-radius:22px;box-shadow:0 10px 28px #173d3014}.resident-login-workspace{flex-direction:column;justify-content:center;align-items:center;gap:18px;margin-top:-40px;padding-top:12px;display:flex}.resident-welcome,.resident-announcement{width:min(760px,100%)}.resident-welcome{text-align:center}.resident-welcome h1{color:var(--forest);margin:0;font-size:clamp(25px,3vw,34px);font-weight:900}.resident-welcome p{color:#71827d;margin:10px 0 0;font-size:15px;font-weight:700;line-height:1.75}.resident-login-card{grid-template-columns:1fr 1fr;align-items:end;gap:10px;width:min(760px,100%);padding:20px 24px}.resident-announcement{background:#fff;border:1px solid #dfe4df;border-radius:22px;padding:20px 24px;box-shadow:0 10px 28px #173d3014}.resident-announcement h2{color:var(--forest);margin:0;font-size:20px;font-weight:900}.resident-announcement p{color:#71827d;margin:10px 0 0;font-size:14px;font-weight:700}.resident-stay-workspace{gap:18px;display:grid}.stay-action-switch{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.stay-action-switch button{min-height:92px;color:var(--forest);background:#fff;border:1px solid #d7e1dc;border-radius:22px;padding:18px;box-shadow:0 10px 28px #173d3014}.stay-action-switch button span{margin-bottom:6px;font-size:24px;display:block}.stay-action-switch button strong{font-size:18px;font-weight:900}.stay-action-switch button.active{background:#e8f3ed;border-color:#2f745d;box-shadow:0 12px 30px #173d3024}.stay-request-card{gap:20px;padding:26px;display:grid}.stay-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.stay-form-grid.single{grid-template-columns:minmax(0,360px)}.stay-form-grid label{color:var(--forest);gap:8px;font-size:13px;font-weight:900;display:grid}.dormitory-rules-card{color:#42564f;background:#fbfaf5;border:1px solid #d7e1dc;border-radius:18px;padding:18px 20px}.checkin-rules-scroll{scroll-behavior:smooth;scrollbar-color:#9eb2a8 #eef2ee;max-height:220px;overflow-y:auto}.checkin-rules-scroll:focus-visible{outline-offset:2px;outline:3px solid #c66b2d3d}.dormitory-rules-card ol{gap:10px;margin:0;padding-left:22px;display:grid}.dormitory-rules-document{gap:18px;display:grid}.dormitory-rules-document>p,.dormitory-rules-document section>p{margin:0}.dormitory-rules-document section{gap:12px;display:grid}.dormitory-rules-document h2{color:var(--forest);margin:0;font-size:18px}.dormitory-rules-penalty,.dormitory-rules-acknowledgement{color:var(--forest);background:#edf5f0;border-radius:12px;padding:14px;font-weight:850}.dormitory-rules-acknowledgement{background:#fbf3e8}.dormitory-rules-agreement{color:var(--forest);align-items:flex-start;gap:10px;font-weight:900;display:flex}.dormitory-rules-agreement input{width:20px;height:20px;accent-color:var(--primary);margin-top:1px}.dormitory-rules-agreement:has(input:disabled){color:#84918d}.rules-reading-status{color:#9b5a28;margin:-8px 0 0;font-size:12px;font-weight:850}.rules-reading-status.complete{color:#2d6d58}.dormitory-contact-line{color:var(--forest);border-top:1px solid #d7e1dc;margin:16px 0 0;padding-top:13px;font-weight:900}.electronic-signature-section{background:#f8faf7;border:1px solid #d7e1dc;border-radius:18px;gap:10px;padding:16px;display:grid}.electronic-signature-section.disabled{color:#71827d;background:#f2f4f1}.electronic-signature-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.electronic-signature-heading>div{gap:3px;display:grid}.electronic-signature-heading strong{color:var(--forest);font-size:15px}.electronic-signature-heading span{color:#71827d;font-size:12px;font-weight:750}.signature-clear-button{min-height:38px;padding:0 12px}.signature-canvas{cursor:crosshair;touch-action:none;background:#fff;border:2px dashed #9eb3a9;border-radius:14px;width:100%;height:190px;display:block}.electronic-signature-section.disabled .signature-canvas{cursor:not-allowed;background:#eef1ed}.signature-status{color:#8a5d2b;font-size:12px;font-weight:900}.signature-status.complete{color:#28714e}.agreement-completion-checklist{background:#f4f1e8;border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px;display:grid}.agreement-completion-checklist span{color:#7c8782;font-size:12px;font-weight:850}.agreement-completion-checklist span.complete{color:#28714e}.stay-request-actions{justify-content:flex-end;gap:10px;display:flex}.agreement-audit{border-left:3px solid var(--primary);background:#edf5f0;border-radius:8px;margin-top:10px;padding:10px 12px}.agreement-audit summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;list-style:none;display:flex}.agreement-audit summary::-webkit-details-marker{display:none}.agreement-audit summary>span{align-items:center;gap:9px;display:flex}.agreement-audit summary>b{color:var(--primary-strong);font-size:12px}.agreement-audit[open] summary>b{color:var(--muted)}.agreement-audit-content{border-top:1px solid #cddbd3;margin-top:10px;padding-top:8px}.agreement-audit-content p{margin:3px 0}.agreement-audit-status-row{background:#f2f4f2;border-left:3px solid #a9b2ae;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;display:flex}.agreement-signature-preview{grid-template-columns:minmax(160px,280px) minmax(140px,1fr);align-items:center;gap:12px;margin-top:10px;display:grid}.agreement-signature-preview img{object-fit:contain;background:#fff;border:1px solid #cbd8d1;border-radius:10px;width:100%;max-height:120px;display:block}.agreement-signature-preview>div{justify-items:start;gap:9px;display:grid}.agreement-signature-preview span{color:#28714e;font-size:12px;font-weight:900}.rules-signature-filters{grid-template-columns:repeat(5,minmax(130px,1fr)) auto;align-items:end;gap:12px;margin-bottom:14px;display:grid}.rules-signature-filters label{color:var(--forest);gap:6px;font-size:12px;font-weight:850;display:grid}.rules-signature-filters input,.rules-signature-filters select{min-height:42px}.rules-signature-export-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-bottom:14px;display:flex}.rules-signature-retention{color:#6b4b38;background:#fff7ec;border-left:4px solid #c66b2d;border-radius:10px;margin:0 0 16px;padding:12px 14px;font-size:12px;line-height:1.65}.rules-signature-table-wrap{overflow-x:auto}.rules-signature-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1180px;font-size:12px}.rules-signature-table th,.rules-signature-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e2e8e3;padding:11px 9px}.rules-signature-table th{color:var(--forest);white-space:nowrap;background:#edf4ef;font-weight:950}.rules-signature-table td{color:#435750}.rules-signature-table td small{color:#71827d;margin-top:4px;display:block}.rules-signature-table td img{object-fit:contain;background:#fff;border:1px solid #d6dfda;border-radius:8px;width:112px;height:52px;display:block}.rules-signature-table td .secondary{white-space:nowrap;min-height:36px;padding:7px 10px}.rules-signature-row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.signature-delete-trigger{color:#9f3732;white-space:nowrap;background:0 0;border:1px solid #bd4a45;border-radius:10px;min-height:36px;padding:7px 10px;font-weight:850}.signature-delete-trigger:hover{background:#fff2ef}.rules-signature-delete-modal{background:#fffdf7;border-radius:24px;gap:18px;width:min(520px,100%);margin:8vh auto 0;padding:24px;display:grid;box-shadow:0 28px 80px #001b16a8}.rules-signature-delete-modal h2{color:var(--forest);margin:4px 0 0}.rules-signature-delete-details{gap:9px;margin:0;display:grid}.rules-signature-delete-details>div{border-bottom:1px solid #e2e8e3;grid-template-columns:120px minmax(0,1fr);gap:12px;padding-bottom:9px;display:grid}.rules-signature-delete-details dt{color:#71827d;font-weight:800}.rules-signature-delete-details dd{color:#344d44;overflow-wrap:anywhere;margin:0;font-weight:900}.rules-signature-delete-warning{color:#87332f;background:#fff2ef;border-left:4px solid #bd4a45;border-radius:10px;margin:0;padding:12px 14px;line-height:1.65}.rules-signature-delete-actions{justify-content:flex-end;gap:10px;display:flex}.rules-signature-modal-backdrop{z-index:250;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#06241ed1;padding:28px 16px;position:fixed;inset:0;overflow-y:auto}.rules-signature-modal{background:#fffdf7;border-radius:26px;gap:18px;width:min(980px,100%);margin:0 auto;padding:24px;display:grid;box-shadow:0 28px 80px #001b16a8}.rules-signature-modal-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.rules-signature-modal-heading h2{color:var(--forest);margin:3px 0 0}.rules-signature-detail-meta{background:#edf5f0;border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;padding:16px;display:grid}.rules-signature-detail-meta p{color:#3d544c;grid-template-columns:150px minmax(0,1fr);gap:8px;margin:0;display:grid}.rules-signature-detail-meta strong{color:var(--forest)}.rules-signature-full-rules{max-height:50vh;overflow-y:auto}.rules-signature-full-rules>header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.rules-signature-full-rules h3,.rules-signature-full-rules>header p{margin:0}.rules-signature-confirmation{background:#fff;border:1px solid #d7e1dc;border-radius:16px;gap:9px;padding:16px;display:grid}.rules-signature-confirmation p{margin:0}.rules-signature-confirmation img{object-fit:contain;background:#fff;border:1px solid #cbd8d1;border-radius:10px;width:min(440px,100%);max-height:180px}.rules-signature-modal-actions{justify-content:flex-end;gap:10px;display:flex}.available-berth-section{gap:12px;display:grid}.available-berth-section>div:first-child{justify-content:space-between;align-items:center;display:flex}.available-berth-section h3{color:var(--forest);margin:0;font-size:18px}.available-berth-section>div:first-child span{color:#71827d;font-size:13px;font-weight:800}.available-berth-grid{grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:10px;display:grid}.available-berth-grid button{min-height:72px;color:var(--forest);background:#f8faf7;border:1px solid #d7e1dc;border-radius:16px}.available-berth-grid button span,.available-berth-grid button strong{display:block}.available-berth-grid button span{color:#71827d;margin-bottom:4px;font-size:11px;font-weight:800}.available-berth-grid button strong{font-size:20px}.available-berth-grid button.selected{background:var(--forest);color:#fff;border-color:#2f745d}.available-berth-grid button.selected span{color:#dcebe5}.stay-submit{width:100%}.current-stay-card{background:#f4f8f4;border:1px solid #d7e1dc;border-radius:18px;gap:7px;padding:18px 20px;display:grid}.current-stay-card span,.current-stay-card small{color:#71827d;font-weight:800}.current-stay-card strong{color:var(--forest);font-size:19px}.admin-berth-assignment{grid-template-columns:minmax(120px,.7fr) minmax(150px,1fr);gap:10px;margin-top:14px;display:grid}.admin-berth-assignment label{color:var(--forest);gap:6px;font-size:12px;font-weight:900;display:grid}.resident-login-title{text-align:center;grid-column:1/-1;padding-bottom:4px}.resident-login-card .primary{grid-column:1/-1;width:100%}.metric{min-height:118px;padding:22px 24px}.metric strong{color:var(--forest);font-size:40px}.panel,.form-panel,.profile-panel{padding:24px}.panel-heading h2,.form-panel h2,.profile-panel h2,.resident-login-title h2{color:var(--forest);font-weight:900}.panel-heading p,.resident-login-title p{color:#71827d}.toolbar,.source-banner{background:#f8faf7;border:1px solid #d7e1dc;border-radius:18px}.cabin-room-strip{background:#fffffff0;border:1px solid #dfe4df;border-radius:20px;padding:7px;box-shadow:0 8px 24px #173d3014}.cabin-room-chip{color:#587169;background:0 0;border:0;border-radius:14px}.cabin-room-chip:hover{background:#eef3eb}.cabin-room-chip.active{background:var(--forest);color:#fff;border:0;box-shadow:0 6px 14px #103b3133}.cabin-room-chip.active .room-divider,.cabin-room-chip.active .room-meter{color:#fff}input,select,textarea{background:#fff;border:1px solid #cfd9d3;border-radius:11px}input:focus,select:focus,textarea:focus{border-color:var(--forest);outline:0;box-shadow:0 0 0 3px #103b3120}.primary,.secondary,.danger-button,.ghost-button{border-radius:12px;min-height:44px}.primary{background:var(--forest);color:#fff;box-shadow:none;border:0}.primary:hover{background:var(--deep)}.secondary{color:var(--forest);background:#fff;border:1px solid #c6d2cc}.danger-button,.ghost-button{color:#c24e38;background:#fff;border-color:#e8b8ae}.status.good,.status.registered,.status.solid{color:#29734e;background:#ddf1e5}.status.warn,.status.kind-locker{color:#aa5418;background:#fff0d7}.status.danger{color:#d34a2b;background:#fee6e1}.room-row,.compact-item,.request-item,.key-card{background:#fff;border-color:#dde4df;border-radius:18px}.modal-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#06241ec4}.modal,.success-modal,.dialog-card{background:#fffdf7;border-radius:26px;box-shadow:0 28px 80px #001b16aa}@media (width<=1020px){.topbar{gap:18px;min-height:88px;padding:10px 22px}.brand-logo-image{width:132px;height:56px}.brand-divider{height:38px}.brand{gap:14px}.system-name strong{font-size:20px}.top-actions{gap:8px;padding:5px}.topbar nav button{padding:9px 11px;font-size:14px}.language-picker{padding-left:4px}.language-picker select{min-width:118px}.header-identity{min-width:66px;padding-left:10px}}@media (width<=760px){.app-shell{width:100%;padding-top:0}.sticky-app-header{margin-bottom:18px;padding-bottom:0}.topbar{border-radius:0;gap:6px;min-height:72px;padding:9px 10px}.topbar h1{font-size:18px}.brand{flex:auto;gap:7px}.brand-logo-image{width:74px;height:40px}.brand-divider{height:28px}.system-name strong{letter-spacing:0;font-size:14px}.system-name small{font-size:9px}.top-actions{scrollbar-width:none;border-radius:18px;flex:0 auto;gap:4px;min-width:0;padding:4px;overflow-x:auto}.top-actions::-webkit-scrollbar{display:none}.top-actions>*{min-height:36px}.topbar nav button{justify-content:center;width:auto;min-width:36px;height:36px;padding:0 10px;font-size:12px;font-weight:900}.employee-car-link{padding-inline:9px!important}.language-picker{padding-left:0}.language-picker>span{display:none}.language-picker select{min-width:70px;max-width:82px;height:36px;padding:7px 20px 7px 8px;font-size:11px;font-weight:900}.header-identity{min-width:58px;padding:0 2px 0 8px}.header-identity strong{font-size:10px}.header-identity span{font-size:9px}.top-actions .language-label{flex:124px;min-height:38px}.top-actions .language-label select{min-width:70px;min-height:34px;padding:6px 20px 6px 8px;font-size:11px}.identity-badge{flex:100%}.tabbar,.cabin-room-strip,.admin-login-card,.admin-security-card,.workspace{width:min(100% - 24px,560px)}.tabbar{gap:6px;padding-top:10px;display:flex;overflow-x:auto}.tabbar button{white-space:nowrap;flex:none;min-height:40px;padding:0 13px}.panel,.form-panel,.profile-panel,.resident-login-card{border-radius:23px;padding:20px 17px}.resident-login-card{grid-template-columns:1fr}.resident-login-title,.resident-login-card .primary{grid-column:1}.stay-action-switch,.stay-form-grid{grid-template-columns:1fr}.stay-action-switch button{min-height:72px;padding:12px}.stay-action-switch button span{margin:0 7px 0 0;font-size:20px;display:inline}.stay-request-card{gap:16px;padding:20px 17px}.electronic-signature-heading,.stay-request-actions{flex-direction:column;align-items:stretch}.agreement-completion-checklist,.agreement-signature-preview{grid-template-columns:1fr}.available-berth-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{border-radius:20px;min-height:96px;padding:18px}.metric strong{font-size:34px}.primary,.secondary,.danger-button,.ghost-button{min-height:46px}}.announcement-management{display:grid}.announcement-editor{background:var(--surface-strong);border:1px solid #1f6b5633;border-radius:18px;gap:14px;margin:18px 0;padding:18px;display:grid}.announcement-editor-heading strong{color:var(--primary-strong);font-size:18px}.announcement-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.announcement-editor-grid label{color:var(--muted);gap:6px;font-size:13px;font-weight:800;display:grid}.announcement-editor-grid input,.announcement-editor-grid select,.announcement-editor-grid textarea{border:1px solid var(--line);width:100%;min-height:42px;color:var(--text);background:#fff;border-radius:10px;padding:9px 11px}.announcement-content-field{grid-column:1/-1}.announcement-publish-choice{border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;grid-column:1/-1;gap:14px;margin:0;padding:12px 14px;display:flex}.announcement-publish-choice legend{color:var(--primary-strong);padding:0 6px;font-size:13px;font-weight:900}.announcement-publish-choice label{color:var(--text);grid-template-columns:none;align-items:center;gap:7px;display:flex}.announcement-publish-choice input{width:18px;min-height:18px;accent-color:var(--primary)}.announcement-editor-actions,.announcement-actions{flex-wrap:wrap;gap:8px;display:flex}.announcement-editor-actions{justify-content:flex-end}.announcement-list{gap:8px;margin-top:18px;display:grid}.announcement-list-head,.announcement-row{grid-template-columns:minmax(220px,1.5fr) minmax(100px,.65fr) minmax(140px,.85fr) minmax(90px,.55fr) minmax(90px,.55fr) minmax(250px,1.15fr);align-items:center;gap:12px;display:grid}.announcement-list-head{color:var(--muted);padding:0 14px 6px;font-size:12px;font-weight:900}.announcement-row{border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px}.announcement-title-cell{gap:4px;min-width:0;display:grid}.announcement-title-cell strong{color:var(--primary-strong)}.announcement-title-cell small{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.announcement-actions button{min-height:36px;padding:0 11px}.public-announcement-list{gap:10px;margin-top:12px;display:grid}.public-announcement-card{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.public-announcement-card summary{cursor:pointer;gap:7px;padding:14px;list-style:none;display:grid}.public-announcement-card summary::-webkit-details-marker{display:none}.public-announcement-meta{color:var(--muted);justify-content:space-between;gap:12px;font-size:12px;font-weight:800;display:flex}.public-announcement-card summary strong{color:var(--primary-strong);font-size:16px}.public-announcement-open-label{color:var(--primary);font-size:13px;font-weight:800}.public-announcement-card[open] .public-announcement-open-label{font-size:0}.public-announcement-card[open] .public-announcement-open-label:after{content:"收合公告";font-size:13px}.public-announcement-content{border-top:1px solid var(--line);padding:0 14px 14px}.public-announcement-content p{white-space:pre-wrap;margin:14px 0 0}.public-announcement-image{object-fit:cover;border-radius:12px;width:100%;max-height:360px;margin:10px 0;display:block}.announcement-attachment-link,.announcement-title-cell a{color:var(--primary);font-size:13px;font-weight:800}@media (width<=980px){.announcement-list-head{display:none}.announcement-row{grid-template-columns:repeat(2,minmax(0,1fr))}.announcement-title-cell,.announcement-actions{grid-column:1/-1}.announcement-row>[data-label]:before{color:var(--muted);content:attr(data-label);margin-bottom:3px;font-size:11px;font-weight:900;display:block}}@media (width<=760px){.announcement-editor-grid,.announcement-row{grid-template-columns:1fr}.announcement-content-field,.announcement-title-cell,.announcement-actions{grid-column:1}}.sticky-app-header .admin-login-card{background:#fffefafa;border-color:#1f6b5638;border-radius:16px;grid-template-columns:1fr;gap:9px;width:min(340px,100% - 40px);margin:8px max(20px,50% - 710px) 0 auto;padding:14px;box-shadow:0 14px 34px #12483c29}.sticky-app-header .admin-login-card>strong{color:var(--primary-dark);font-size:14px;font-weight:900}.sticky-app-header .admin-login-card input{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;min-height:42px;padding:0 12px}.admin-login-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sticky-app-header .admin-login-card .admin-login-actions button{border-radius:10px;min-height:40px}@media (width<=760px){.sticky-app-header .admin-login-card{width:min(340px,100% - 24px);margin:8px 12px 0 auto}}.new-hire-entry{justify-items:center;gap:12px;display:grid}.new-hire-link{color:var(--primary);text-underline-offset:4px;background:0 0;border:0;padding:8px 12px;font-weight:900;text-decoration:underline}.new-hire-link:hover{color:var(--primary-strong)}.new-hire-form{gap:16px;width:min(760px,100%);display:grid}.new-hire-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.new-hire-form-grid label,.new-hire-review-fields label{color:var(--muted);gap:6px;font-size:13px;font-weight:800;display:grid}.new-hire-form-grid input,.new-hire-form-grid textarea,.new-hire-review-fields input,.new-hire-review-fields select,.new-hire-review-fields textarea{border:1px solid var(--line);width:100%;min-height:42px;color:var(--text);background:#fff;border-radius:10px;padding:9px 11px}.new-hire-note{grid-column:1/-1}.new-hire-rules-step{border-top:1px solid var(--line);gap:14px;padding-top:18px;display:grid}.new-hire-rules-step>header{justify-content:space-between;align-items:flex-end;gap:14px;display:flex}.new-hire-rules-step>header h3,.new-hire-rules-step>header p{margin:0}.new-hire-rules-step>header h3{color:var(--forest);font-size:20px}.new-hire-rules-step>header>strong{color:var(--primary);white-space:nowrap;font-size:13px}.new-hire-rules-scroll{scroll-behavior:smooth;scrollbar-color:#9eb2a8 #eef2ee;max-height:440px;overflow-y:auto}.new-hire-rules-scroll:focus-visible{outline-offset:2px;outline:3px solid #c66b2d3d}.new-hire-signing-checklist{grid-template-columns:repeat(4,minmax(0,1fr))}.new-hire-form-actions{justify-content:flex-end;gap:10px;display:flex}.new-hire-review-item{align-items:start}.new-hire-application-summary{min-width:0}.new-hire-review-fields{grid-template-columns:repeat(3,minmax(130px,1fr));gap:10px;min-width:min(660px,100%);display:grid}.new-hire-admin-note{grid-column:1/-1}.processed-new-hire-list{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.processed-new-hire-list summary{color:var(--primary-strong);cursor:pointer;font-weight:900}.processed-new-hire-list .request-list{margin-top:12px}@media (width<=900px){.new-hire-review-fields{grid-template-columns:1fr;min-width:0}.new-hire-admin-note{grid-column:1}}@media (width<=760px){.new-hire-form-grid{grid-template-columns:1fr}.new-hire-note{grid-column:1}.new-hire-form-actions{grid-template-columns:1fr 1fr;display:grid}}.resident-login-workspace{justify-content:stretch;align-items:stretch;gap:14px;width:min(920px,100% - 24px);margin-top:0;padding:10px 0 28px;display:grid}.resident-welcome{color:#fff;text-align:left;background:linear-gradient(135deg,#17483b,#0f392f);border-radius:22px;order:1;align-items:center;gap:14px;width:100%;padding:20px;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 34px #0f392f33}.resident-welcome:before,.resident-welcome:after{clip-path:polygon(0 100%,0 78%,15% 58%,27% 70%,43% 30%,56% 57%,68% 40%,79% 62%,91% 35%,100% 50%,100% 100%);content:"";pointer-events:none;background:#deece117;height:82%;position:absolute;bottom:-1px;left:31%;right:-3%}.resident-welcome:after{clip-path:polygon(0 100%,0 72%,17% 48%,31% 68%,46% 38%,61% 70%,74% 45%,88% 63%,100% 46%,100% 100%);background:#deece10f;height:58%;left:45%;right:-8%}.resident-welcome>*{z-index:1;position:relative}.resident-welcome-icon{background:#ffffff1c;border:1px solid #fff3;border-radius:17px;flex:0 0 52px;place-items:center;width:52px;height:52px;font-size:26px;display:grid}.resident-welcome h1{color:#fff;font-size:25px;line-height:1.2}.resident-welcome p{color:#dcebe5;margin-top:5px;font-size:13px;line-height:1.55}.resident-welcome .resident-contact-line{color:#fff;background:#ffffff1f;border-radius:999px;width:fit-content;margin-top:9px;padding:6px 10px;font-weight:900}.resident-announcement{width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;order:2;padding:2px 0 0}.resident-announcement h2{color:#17483b;align-items:center;gap:9px;margin-bottom:12px;font-size:18px;display:flex}.announcement-heading-icon{color:#17483b;background:#edf5f0;border:1px solid #cbdcd4;border-radius:10px;place-items:center;width:30px;height:30px;font-size:16px;display:inline-grid}.public-announcement-list{gap:9px}.public-announcement-card{background:#f7f6ef;border-color:#d8e5dd;border-radius:19px;transition:transform .16s,box-shadow .16s;box-shadow:0 7px 20px #173d300f}.public-announcement-card summary{cursor:pointer;gap:8px;padding:16px}.public-announcement-badges{flex-wrap:wrap;gap:6px;display:flex}.announcement-badge{letter-spacing:.02em;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:950}.announcement-badge.category{color:#29634f;background:#e5f1ea;border-radius:999px}.announcement-badge.pinned{color:#aa5c1f;background:#fff0dc}.announcement-badge.new{color:#fff;background:#17483b}.public-announcement-meta{justify-content:flex-start}.public-announcement-summary{color:#71827d;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;font-weight:650;line-height:1.55;display:-webkit-box;overflow:hidden}.public-announcement-open-label{color:#fff;background:#17483b;border-radius:999px;justify-self:end;padding:8px 12px;font-size:12px}.resident-login-card{border:1px solid #dce5df;border-radius:18px;order:5;grid-template-columns:1fr;justify-self:stretch;gap:14px;width:100%;max-width:none;padding:17px;box-shadow:0 8px 22px #173d300f}.resident-login-title{text-align:left;align-items:center;gap:8px;padding:0;display:flex}.resident-login-icon{color:#17483b;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 20px;width:20px;height:20px;display:block}.resident-login-title h2{margin:0;font-size:18px}.resident-login-card label{gap:6px;font-size:12px}.resident-login-card input{border-radius:12px;min-height:44px}.resident-login-card .primary{border-radius:12px;width:100%;min-height:44px}.admin-entry-triangle{flex:0 0 40px;place-items:center;color:#fff!important;border-radius:50%!important;width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;font-size:0!important;line-height:0!important;display:grid!important}.admin-triangle-icon{stroke:currentColor;stroke-width:2.15px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px;margin:0;display:block;overflow:visible}.employee-car-link{white-space:nowrap;flex:none;justify-content:center;align-items:center;gap:8px;min-width:max-content!important;display:inline-flex!important}.employee-car-icon{color:#fff;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 20px;width:20px;height:20px;display:block}.admin-tab-label{white-space:nowrap;justify-content:center;align-items:center;gap:7px;display:inline-flex}.admin-tab-icon{color:currentColor;flex:0 0 18px;place-items:center;width:18px;height:18px;font-size:13px;line-height:1;display:inline-grid}.resident-reminders{order:3;gap:11px;display:grid}.resident-home-section-heading{align-items:center;gap:8px;padding:0 3px;display:flex}.resident-home-section-heading h2{color:var(--forest);margin:0;font-size:18px}.resident-reminder-grid{scrollbar-width:thin;grid-template-columns:repeat(4,minmax(118px,1fr));gap:9px;padding-bottom:3px;display:grid;overflow-x:auto}.resident-reminder-item{min-height:92px;color:var(--forest);text-align:center;background:#fff;border:1px solid #e2e7e2;border-radius:17px;place-items:center;gap:8px;padding:13px 10px;display:grid;box-shadow:0 7px 20px #173d300f}.resident-reminder-item>span{font-size:23px}.resident-reminder-item strong{font-size:12px;line-height:1.4}.resident-resource-card{color:var(--forest);font:inherit;text-align:left;cursor:pointer;background:#fbf8ef;border:1px solid #dce5df;border-radius:18px;order:5;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:17px;transition:transform .16s,box-shadow .16s;display:grid;box-shadow:0 8px 22px #173d300f}.resident-resource-card>span{font-size:24px}.resident-resource-card>div{gap:4px;display:grid}.resident-resource-card strong{font-size:14px}.resident-resource-card small{color:#71827d;font-size:12px;font-weight:700;line-height:1.45}.resident-resource-card>b{color:#c66b2d;font-size:18px}.emergency-contact-card{color:#50352a;background:linear-gradient(145deg,#fff8ef,#fffdf8);border:1px solid #efcdb6;border-radius:20px;order:4;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:14px;padding:18px;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 26px #8446201a}.emergency-contact-card:after{content:"";pointer-events:none;background:#c66b2d14;border-radius:50%;width:132px;height:132px;position:absolute;bottom:-54px;right:-32px}.emergency-contact-icon{background:#fff0e5;border-radius:15px;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.emergency-contact-card>div{z-index:1;gap:7px;display:grid;position:relative}.emergency-contact-card h2{color:#733c27;margin:0;font-size:18px}.emergency-contact-card p{color:#77584b;margin:0;font-size:13px;line-height:1.55}.emergency-contact-card a{color:#fff;background:#ad4e2d;border-radius:999px;width:fit-content;padding:9px 13px;font-size:14px;font-weight:950;text-decoration:none;box-shadow:0 6px 14px #ad4e2d33}.emergency-contact-card small{color:#8c7369;font-size:11px;font-weight:750}.public-rules-page{gap:18px;width:min(760px,100% - 24px);margin-top:18px;padding-bottom:34px;display:grid}.public-rules-page-heading{color:#fff;background:linear-gradient(135deg,#17483b,#0f392f);border-radius:24px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding:22px;display:grid;box-shadow:0 14px 34px #0f392f2e}.public-rules-page-heading>span{background:#ffffff1f;border-radius:17px;place-items:center;width:52px;height:52px;font-size:24px;display:grid}.public-rules-page-heading h1{color:#fff;margin:0;font-size:26px}.public-rules-page-heading p{color:#dcebe5;margin:5px 0 0;font-size:14px;font-weight:800}.public-rules-content{background:#fff;border-radius:22px;padding:24px 26px;font-size:16px;line-height:1.8;box-shadow:0 10px 28px #173d3014}.public-rules-signing{border-radius:22px;gap:16px;padding:22px;display:grid}.public-rules-identity{grid-template-columns:1fr 1fr;gap:12px;display:grid}.public-rules-identity label{color:var(--forest);gap:7px;font-size:13px;font-weight:850;display:grid}.public-signature-checklist{grid-template-columns:repeat(3,minmax(0,1fr))}.public-rules-page-actions{justify-content:center;display:flex}.public-rules-page-actions .secondary{min-width:180px}.new-hire-entry{order:5;justify-items:stretch;width:100%}.new-hire-link{width:100%;color:var(--forest);text-align:left;background:#eef5ef;border:1px solid #dce5df;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:17px;text-decoration:none;display:grid;box-shadow:0 8px 22px #173d300f}.new-hire-link>span:first-child{font-size:24px}.new-hire-link>span:nth-child(2){gap:4px;display:grid}.new-hire-link strong{font-size:14px}.new-hire-link small{color:#71827d;font-size:12px;font-weight:700;line-height:1.45}.new-hire-link b{color:#c66b2d;font-size:18px}.new-hire-form{width:100%}@media (hover:hover){.public-announcement-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px #173d3021}.new-hire-link:hover{transform:translateY(-2px);box-shadow:0 13px 28px #173d3021}}@media (width>=720px){.resident-login-workspace{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:16px;padding-top:18px}.resident-welcome,.resident-announcement,.resident-reminders,.emergency-contact-card{grid-column:1/-1}.resident-welcome{padding:24px 26px}.resident-announcement{padding:2px 0 0}.resident-login-card{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;padding:17px}.resident-login-title{grid-column:1/-1}.resident-login-card .primary{grid-column:1/-1;justify-self:stretch;width:100%}:is(.new-hire-entry,.new-hire-entry:has(.new-hire-form)){grid-column:1/-1}}@media (width<=560px){.resident-reminder-grid{margin-right:-12px;padding-right:12px}.emergency-contact-card{padding:16px}.new-hire-rules-step>header{flex-direction:column;align-items:flex-start;gap:6px}.new-hire-rules-scroll{max-height:360px;padding:17px 15px}.new-hire-signing-checklist{grid-template-columns:1fr}.public-rules-page{margin-top:10px}.public-rules-page-heading{border-radius:20px;padding:18px}.public-rules-page-heading h1{font-size:22px}.public-rules-content{border-radius:18px;padding:20px 18px;font-size:15px}.public-rules-page-actions .primary{width:100%}.public-rules-identity,.public-signature-checklist{grid-template-columns:1fr}.public-rules-page-actions .secondary{width:100%}}.employee-access-panel{gap:20px;display:grid}.employee-access-search{background:#f7faf7;border:1px solid #dce5df;border-radius:18px;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;align-items:end;gap:12px;padding:18px;display:grid}.employee-access-search label{color:var(--primary-dark);gap:7px;font-size:13px;font-weight:900;display:grid}.employee-access-search button{min-height:44px}.employee-access-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.employee-access-card{background:#fff;border:1px solid #d6e0da;border-radius:20px;gap:16px;padding:18px;display:grid;box-shadow:0 10px 26px #18433612}.employee-access-card>header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.employee-access-card>header div{gap:4px;display:grid}.employee-access-card>header strong{color:var(--primary-dark);font-size:20px}.employee-access-card>header span:not(.status){color:var(--muted);font-size:13px;font-weight:800}.employee-access-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.employee-access-card dl div{background:#f4f7f4;border-radius:12px;gap:4px;padding:10px 12px;display:grid}.employee-access-card dt{color:var(--muted);font-size:12px;font-weight:800}.employee-access-card dd{color:var(--text);margin:0;font-weight:900}.employee-terminate-button{width:100%;min-height:44px}.employee-access-history-note{color:#6f403a;background:#fff4f2;border-left:4px solid #a33f36;border-radius:12px;margin:0;padding:13px 15px;font-size:13px;line-height:1.65}@media (width<=900px){.employee-access-results{grid-template-columns:1fr}.rules-signature-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.rules-signature-filters>.secondary{min-height:42px}.rules-signature-table{min-width:0}.rules-signature-table thead{display:none}.rules-signature-table tbody,.rules-signature-table tr,.rules-signature-table td{display:block}.rules-signature-table tr{background:#fff;border:1px solid #dce5df;border-radius:16px;margin-bottom:12px;padding:10px 13px}.rules-signature-table td{border-bottom:1px solid #edf1ee;grid-template-columns:132px minmax(0,1fr);gap:10px;padding:9px 0;display:grid}.rules-signature-table td:last-child{border-bottom:0}.rules-signature-table td:before{color:var(--forest);content:attr(data-label);font-weight:900}.rules-signature-table td img{width:150px;max-width:100%}}.backup-converter{background:#f8fbf8;border:1px solid #d9e5dc;border-radius:20px;margin-top:22px;padding:20px}.backup-converter-heading{justify-content:space-between;gap:16px;display:flex}.backup-converter-heading h3{margin:0 0 6px}.backup-converter-heading p,.backup-safety-note{color:#52665a;margin:0}.privacy-badge{color:#17492d;white-space:nowrap;background:#dfeee3;border-radius:999px;align-self:flex-start;padding:7px 11px;font-weight:800}.backup-file-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0;display:grid}.backup-file-grid label{gap:8px;font-weight:800;display:grid}.backup-file-grid input{background:#fff;border:1px solid #cad8ce;border-radius:12px;width:100%;padding:10px}.backup-safety-note{margin-bottom:16px;font-size:.92rem}.backup-converter-result{background:#fff;border-radius:14px;margin-top:16px;padding:16px}.backup-converter-result p{margin:6px 0}.backup-part-list{gap:7px;max-height:260px;margin:14px 0;padding:0;list-style:none;display:grid;overflow:auto}.backup-part-list li{border-bottom:1px solid #e4ece6;justify-content:space-between;gap:12px;padding:7px 0;font-size:.9rem;display:flex}.backup-part-list li span:first-child{overflow-wrap:anywhere;font-weight:800}.backup-package-warning{color:#71420a;background:#fff8e8;border:1px solid #d59a44;border-radius:12px;margin:12px 0;padding:12px}@media (width<=620px){.backup-file-grid{grid-template-columns:1fr}.backup-converter-heading{flex-direction:column}.employee-access-search,.employee-access-card dl{grid-template-columns:1fr}.employee-access-search button{width:100%}.rules-signature-filters,.rules-signature-detail-meta{grid-template-columns:1fr}.rules-signature-export-actions,.rules-signature-modal-actions,.rules-signature-modal-heading{flex-direction:column;align-items:stretch}.rules-signature-export-actions button,.rules-signature-modal-actions button{width:100%}.rules-signature-table td{grid-template-columns:112px minmax(0,1fr)}.rules-signature-modal-backdrop{padding:10px}.rules-signature-modal{border-radius:20px;padding:17px}.rules-signature-detail-meta p{grid-template-columns:1fr;gap:3px}}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
