@font-face{font-family:Pretendard;font-weight:400;font-style:normal;font-display:swap;src:url(https://fastly.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/static/woff2/Pretendard-Regular.woff2)format("woff2")}@font-face{font-family:Pretendard;font-weight:500;font-style:normal;font-display:swap;src:url(https://fastly.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/static/woff2/Pretendard-Medium.woff2)format("woff2")}@font-face{font-family:Pretendard;font-weight:600;font-style:normal;font-display:swap;src:url(https://fastly.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/static/woff2/Pretendard-SemiBold.woff2)format("woff2")}@font-face{font-family:Pretendard;font-weight:700;font-style:normal;font-display:swap;src:url(https://fastly.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/static/woff2/Pretendard-Bold.woff2)format("woff2")}@font-face{font-family:SUIT;font-weight:100 900;font-style:normal;font-display:swap;src:url(https://fastly.jsdelivr.net/gh/sunn-us/SUIT/fonts/variable/woff2/SUIT-Variable.woff2)format("woff2-variations"),url(https://fastly.jsdelivr.net/gh/sunn-us/SUIT/fonts/variable/woff2/SUIT-Variable.woff2)format("woff2")}@font-face{font-family:LINESeedKR;font-weight:400;font-style:normal;font-display:swap;src:url(https://fastly.jsdelivr.net/gh/projectnoonnu/noonfonts_11-01@1.0/LINESeedKR-Rg.woff2)format("woff2")}@font-face{font-family:LINESeedKR;font-weight:700;font-style:normal;font-display:swap;src:url(https://fastly.jsdelivr.net/gh/projectnoonnu/noonfonts_11-01@1.0/LINESeedKR-Bd.woff2)format("woff2")}:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-primary:#f8f9fc;--color-bg-surface:#fff;--color-bg-elevated:#fff;--color-bg-overlay:#0006;--color-bg-overlay-strong:#000000d9;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-disabled:#94a3b8;--color-text-inverse:#fff;--color-accent:#5b6cf9;--color-accent-hover:#4a5ce0;--color-accent-active:#3a4cd0;--color-accent-subtle:#eef0fe;--color-accent-glow:#5b6cf94d;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-status-ok:#16a34a;--color-status-ok-bg:#f0fdf4;--color-status-ok-border:#16a34a40;--color-status-ok-glow:#16a34ab3;--color-status-warn:#d97706;--color-status-warn-bg:#fffbeb;--color-status-warn-border:#d9770640;--color-status-warn-glow-soft:#d9770614;--color-status-warn-glow-strong:#d9770633;--color-status-danger:#dc2626;--color-status-danger-bg:#fef2f2;--color-status-danger-border:#dc262640;--color-status-info:#2563eb;--color-status-info-bg:#eff6ff;--color-status-info-border:#2563eb40;--color-icon-default:#475569;--color-icon-active:#5b6cf9;--color-primary:var(--color-accent);--color-primary-subtle:var(--color-accent-subtle);--color-primary-muted:var(--color-border-strong);--color-success:var(--color-status-ok);--color-success-subtle:var(--color-status-ok-bg);--color-status-success-bg:var(--color-status-ok-bg);--color-warning:var(--color-status-warn);--color-warn:var(--color-status-warn);--color-warn-subtle:var(--color-status-warn-bg);--color-status-warning-bg:var(--color-status-warn-bg);--color-danger:var(--color-status-danger);--color-danger-subtle:var(--color-status-danger-bg);--color-info:var(--color-status-info);--color-bg-secondary:var(--color-bg-surface);--color-surface:var(--color-bg-surface);--color-surface-elevated:var(--color-bg-elevated);--color-surface-hover:var(--color-bg-primary);--color-text-tertiary:var(--color-text-disabled);--color-text-muted:var(--color-text-disabled);--color-border-subtle:#0000000f;--color-border-light:#0000000f;--color-bg-subtle:#00000005;--color-shadow-md:#0000001a;--color-role-supervisor:#7e22ce;--color-role-supervisor-bg:#7e22ce1a;--color-role-supervisor-border:#7e22ce40;--color-role-admin:#31259e;--color-role-admin-bg:#31259e1a;--color-role-admin-border:#31259e40;--color-role-resident:#0f766e;--color-role-resident-bg:#0f766e1a;--color-role-resident-border:#0f766e40;--color-role-vehicle:#08569b;--color-role-vehicle-bg:#08569b1f;--color-role-vehicle-border:#08569b40;--color-role-manager:#981c9c;--color-role-manager-bg:#981c9c1f;--color-role-manager-border:#981c9c40;--color-cat-guest:#d9534f;--color-cat-cleaning:#8270db;--color-cat-settle:#4a8fe7;--color-cat-vehicle:#d9853b;--color-cat-space:#38a169;--color-cat-word:#3b82f6;--color-cat-schedule:#f39c12;--color-cat-repair:#e056fd;--color-cat-storage:#6c5ce7;--color-cat-finance:#00b894;--color-cat-vehiclecost:#d63031;--color-cat-board:#00cec9;--color-cat-poll:#0984e3;--color-cat-guide:#636e72;--color-cat-feedback:#6366f1;--color-cal-away:#d87080;--color-cal-away-bg:#d8708026;--color-cal-cleaning:#8270db;--color-cal-cleaning-bg:#8270db26;--color-cal-space:#4a8fe7;--color-cal-space-bg:#4a8fe726;--color-cal-vehicle:#d9853b;--color-cal-vehicle-bg:#d9853b26;--color-cal-guest:#38a169;--color-cal-guest-bg:#38a16926;--color-cal-guest-border:#38a16940;--color-cal-visitor:#d9534f;--color-cal-visitor-bg:#d9534f26;--color-cal-visitor-border:#d9534f40;--color-cat-word-bg:#3b82f61f;--color-cat-word-border:#3b82f640;--color-topic-proverb:#7c3aed;--color-topic-proverb-bg:#7c3aed14;--color-topic-proverb-border:#7c3aed33;--color-topic-sunday:#0369a1;--color-topic-sunday-bg:#0369a114;--color-topic-wednesday:#4d7c0f;--color-topic-wednesday-bg:#4d7c0f14;--color-cal-sunday:#b30f74;--color-cal-sunday-bg:#b30f741f;--color-cal-sunday-border:#b30f7440;--color-cal-saturday:#047b95;--color-cal-saturday-bg:#047b951f;--color-cal-saturday-border:#047b9540;--color-veh-5457:#0e8166;--color-veh-5457-bg:#0e81661f;--color-veh-5457-border:#0e816640;--color-veh-1643:#2c8722;--color-veh-1643-bg:#2c87221f;--color-veh-1643-border:#2c872240;--color-veh-1664:#8f1dc9;--color-veh-1664-bg:#8f1dc91f;--color-veh-1664-border:#8f1dc940;--color-veh-6283:#677712;--color-veh-6283-bg:#6777121f;--color-veh-6283-border:#67771240}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-primary:#0f1117;--color-bg-surface:#1a1d23;--color-bg-elevated:#252830;--color-bg-overlay:#0009;--color-bg-overlay-strong:#000000e0;--color-text-primary:#e2e8f0;--color-text-secondary:#94a3b8;--color-text-disabled:#475569;--color-text-inverse:#1a1d23;--color-accent:#7c8ff9;--color-accent-hover:#9baaff;--color-accent-active:#adbcff;--color-accent-subtle:#1e2340;--color-accent-glow:#7c8ff94d;--color-border:#2d3144;--color-border-strong:#3d4460;--color-status-ok:#4ade80;--color-status-ok-bg:#052e16;--color-status-ok-border:#4ade804d;--color-status-ok-glow:#4ade80b3;--color-status-warn:#fbbf24;--color-status-warn-bg:#f59e0b1f;--color-status-warn-border:#f59e0b40;--color-status-warn-glow-soft:#f59e0b14;--color-status-warn-glow-strong:#f59e0b33;--color-status-danger:#f87171;--color-status-danger-bg:#1c0707;--color-status-danger-border:#f8717159;--color-status-info:#60a5fa;--color-status-info-bg:#0a1929;--color-status-info-border:#60a5fa4d;--color-icon-default:#94a3b8;--color-icon-active:#7c8ff9;--color-primary:var(--color-accent);--color-primary-subtle:var(--color-accent-subtle);--color-primary-muted:var(--color-border-strong);--color-success:var(--color-status-ok);--color-success-subtle:var(--color-status-ok-bg);--color-status-success-bg:var(--color-status-ok-bg);--color-warning:var(--color-status-warn);--color-warn:var(--color-status-warn);--color-warn-subtle:var(--color-status-warn-bg);--color-status-warning-bg:var(--color-status-warn-bg);--color-danger:var(--color-status-danger);--color-danger-subtle:var(--color-status-danger-bg);--color-info:var(--color-status-info);--color-bg-secondary:var(--color-bg-surface);--color-surface:var(--color-bg-surface);--color-surface-elevated:var(--color-bg-elevated);--color-surface-hover:var(--color-bg-elevated);--color-text-tertiary:var(--color-text-disabled);--color-text-muted:var(--color-text-disabled);--color-border-subtle:#ffffff14;--color-border-light:#ffffff14;--color-bg-subtle:#ffffff08;--color-shadow-md:#00000059;--color-role-supervisor:#c084fc;--color-role-supervisor-bg:#c084fc2e;--color-role-supervisor-border:#c084fc40;--color-role-admin:#b2aeff;--color-role-admin-bg:#b2aeff2e;--color-role-admin-border:#b2aeff40;--color-role-resident:#2dd4bf;--color-role-resident-bg:#2dd4bf2e;--color-role-resident-border:#2dd4bf40;--color-role-vehicle:#64b2f7;--color-role-vehicle-bg:#64b2f726;--color-role-vehicle-border:#64b2f740;--color-role-manager:#e374e7;--color-role-manager-bg:#e374e726;--color-role-manager-border:#e374e740;--color-cat-guest:#d9534f;--color-cat-cleaning:#8270db;--color-cat-settle:#4a8fe7;--color-cat-vehicle:#de9554;--color-cat-space:#68ca96;--color-cat-word:#3b82f6;--color-cat-schedule:#ebab47;--color-cat-repair:#e056fd;--color-cat-storage:#7a6be9;--color-cat-finance:#4ce6c8;--color-cat-vehiclecost:#dd5556;--color-cat-board:#4ce6e2;--color-cat-poll:#47a3eb;--color-cat-guide:#929ca0;--color-cat-feedback:#6b6ef2;--color-cal-away:#d97382;--color-cal-away-bg:#d9738238;--color-cal-cleaning:#9485e0;--color-cal-cleaning-bg:#9485e038;--color-cal-space:#619dea;--color-cal-space-bg:#619dea38;--color-cal-vehicle:#e2a269;--color-cal-vehicle-bg:#e2a26938;--color-cal-guest:#7bd1a3;--color-cal-guest-bg:#7bd1a338;--color-cal-guest-border:#7bd1a340;--color-cal-visitor:#df706c;--color-cal-visitor-bg:#df706c38;--color-cal-visitor-border:#df706c40;--color-cat-word-bg:#60a5fa26;--color-cat-word-border:#60a5fa4d;--color-topic-proverb:#c084fc;--color-topic-proverb-bg:#c084fc24;--color-topic-proverb-border:#c084fc40;--color-topic-sunday:#60a5fa;--color-topic-sunday-bg:#60a5fa1f;--color-topic-wednesday:#4ade80;--color-topic-wednesday-bg:#4ade801f;--color-cal-sunday:#f472b6;--color-cal-sunday-bg:#f472b626;--color-cal-sunday-border:#f472b640;--color-cal-saturday:#38bdf8;--color-cal-saturday-bg:#38bdf826;--color-cal-saturday-border:#38bdf840;--color-veh-5457:#34d399;--color-veh-5457-bg:#34d39926;--color-veh-5457-border:#34d39940;--color-veh-1643:#4ade80;--color-veh-1643-bg:#4ade8026;--color-veh-1643-border:#4ade8040;--color-veh-1664:#c084fc;--color-veh-1664-bg:#c084fc26;--color-veh-1664-border:#c084fc40;--color-veh-6283:#fbbf24;--color-veh-6283-bg:#fbbf2426;--color-veh-6283-border:#fbbf2440}:root{--font-family:"Pretendard Variable", "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-numeric:"SUIT Variable", "SUIT", "Pretendard Variable", "Pretendard", -apple-system, BlinkMacSystemFont, sans-serif;--font-point:"LINESeedKR", "LINE Seed Sans KR", "Pretendard Variable", "Pretendard", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs:13px;--font-size-sm:14px;--font-size-md:16px;--font-size-base:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:28px;--font-weight-light:300;--font-weight-regular:400;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.3;--line-height-normal:1.5;--line-height-loose:1.7;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f;--shadow-xl:0 16px 40px #00000026;--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-slow:.3s ease;--sidebar-width-collapsed:64px;--sidebar-width-expanded:240px;--tabbar-height:64px;--header-height:56px;--content-max-width:768px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px;overflow-x:hidden}body{font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);transition:background-color var(--transition-normal), color var(--transition-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;word-break:keep-all;overflow-wrap:break-word;position:relative;overflow-x:hidden;font-family:var(--font-family)!important}button,.btn,.badge,.tab-btn,.nav-item,.chip,label,.form-label,.month-label{word-break:keep-all}*,:before,:after,input,textarea,select,button,label,optgroup,option,p,span,div,strong,b,a,li,ul,ol,th,td,.form-input,.form-label,.gv-form-desc,.gv-form-title,.gv-section-info,.card,input[type=text],input[type=date],input[type=number],input::placeholder,textarea::placeholder{font-family:var(--font-family)!important}h1,h2,h3,h4,.font-point,.modal-title,.badge,.btn-primary,.home-section-title,.gv-title,.page-title,.guide-title,.board-title,.vehicle-title,.settle-title,.stat-title,.acct-title,.repair-title,.storage-title,.space-title,.card-title,.section-title,.tab-btn,.gv-tab-btn,.guide-tab-btn,.home-modal-type-tab,.sidebar-logo,.nav-item-active{letter-spacing:-.01em;font-family:var(--font-point)!important}.font-num,.amount-val,.settle-amount,.cost-amount,.finance-amount,.stat-value,.dday-badge,.time-badge,.num-bold,.settle-fee-amount,.settle-req-amount,.settle-item-amount,.acct-fee-amount,.stat-num,.cal-date-num,.vehicle-plate,.fuel-level-num{font-feature-settings:"tnum" 1;font-family:var(--font-numeric)!important}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}a{color:var(--color-accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-hover)}button{cursor:pointer;transition:all var(--transition-normal);background:0 0;border:none;outline:none;font-family:var(--font-family)!important}button:disabled{cursor:not-allowed;opacity:.5}input:not([type=checkbox]):not([type=radio]),textarea,select{font-size:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-surface);color:var(--color-text-primary);padding:var(--space-3) var(--space-4);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;width:100%;font-family:var(--font-family)!important}input:not([type=checkbox]):not([type=radio]):focus,textarea:focus,select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}input[type=checkbox],input[type=radio]{width:16px;min-width:16px;height:16px;min-height:16px;accent-color:var(--color-accent);cursor:pointer;vertical-align:middle;flex-shrink:0;margin:0;padding:0}input::placeholder,textarea::placeholder{color:var(--color-text-disabled);font-family:var(--font-family)!important}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4);transition:box-shadow var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md)}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:inline-flex}.badge-ok{background:var(--color-status-ok-bg);color:var(--color-status-ok)}.badge-warn{background:var(--color-status-warn-bg);color:var(--color-status-warn)}.badge-danger{background:var(--color-status-danger-bg);color:var(--color-status-danger)}.badge-info{background:var(--color-status-info-bg);color:var(--color-status-info)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--transition-normal);white-space:nowrap;display:inline-flex}.btn-primary{background:var(--color-accent);color:var(--color-text-inverse)}.btn-primary:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active{background:var(--color-accent-active);transform:translateY(0)}.btn-secondary{background:var(--color-accent-subtle);color:var(--color-accent)}.btn-secondary:hover{background:var(--color-accent);color:#fff}.btn-ghost{background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-ghost:hover{background:var(--color-accent-subtle);border-color:var(--color-accent);color:var(--color-accent)}.btn-danger{background:var(--color-status-danger-bg);color:var(--color-status-danger);border:1px solid var(--color-status-danger-border)}.btn-danger:hover{background:var(--color-status-danger);color:var(--color-text-inverse)}.btn-full{width:100%}.btn-lg{padding:var(--space-4) var(--space-6);font-size:var(--font-size-md)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.icon-btn{border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--color-accent-subtle);border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.icon-btn:active{transform:translateY(0)}.icon-btn.danger{color:var(--color-status-danger);border-color:var(--color-status-danger-border)}.icon-btn.danger:hover{background:var(--color-status-danger-bg);border-color:var(--color-status-danger)}.modal-close{border-radius:var(--radius-full);background:var(--color-bg-elevated);border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.modal-close:hover{background:var(--color-status-danger-bg);color:var(--color-status-danger);border-color:var(--color-status-danger)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);word-break:keep-all;background:0 0;border:none;margin-bottom:6px;padding:0;display:block}.form-hint,.text-muted,.sz-btn-desc,.storage-zone-desc-tag,.card-desc,.sub-desc{word-break:keep-all;overflow-wrap:break-word;line-height:1.35}input[type=text],input[type=password],input[type=number],input[type=month],input[type=date],input[type=time],input[type=datetime-local],select,textarea,.form-input,.form-select{background:var(--color-bg-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);font-family:var(--font-family)!important;box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important}.form-field{box-sizing:border-box;width:100%;min-width:0}input[type=date],input[type=time],input[type=month],input[type=datetime-local]{appearance:none;min-height:40px;display:block;box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important}input[type=date]::-webkit-date-and-time-value{text-align:left;width:100%;min-height:1.25em;margin:0;padding:0}input[type=time]::-webkit-date-and-time-value{text-align:left;width:100%;min-height:1.25em;margin:0;padding:0}input[type=month]::-webkit-date-and-time-value{text-align:left;width:100%;min-height:1.25em;margin:0;padding:0}input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;width:100%;min-height:1.25em;margin:0;padding:0}@media (width<=480px){input[type=date],input[type=time],input[type=month],input[type=datetime-local]{padding:8px 10px!important;font-size:13px!important}}input:focus,select:focus,textarea:focus,.form-input:focus,.form-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle);outline:none}.section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-4)}.divider{background:var(--color-border);height:1px;margin:var(--space-4) 0}.modal-overlay,.modal-backdrop{background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--space-4);z-index:1200;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-sheet,.modal-box{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-5);width:100%;max-width:480px;box-shadow:var(--shadow-xl);max-height:90vh;overflow-y:auto;box-sizing:border-box!important}@media (width<=480px){.modal-sheet,.modal-box{padding:var(--space-4)!important;border-radius:var(--radius-lg)!important}}.modal-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.modal-subtitle{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.page-enter{animation:fadeIn var(--transition-slow) ease forwards}.page-tip-banner{background:var(--color-bg-surface);border:1px solid var(--color-border);border-left:3.5px solid var(--color-accent);border-radius:var(--radius-md);margin-bottom:var(--space-3);box-shadow:var(--shadow-sm);padding:10px 14px}.page-tip-banner-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.page-tip-banner-title{color:var(--color-text-primary);align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.page-tip-banner-toggle{color:var(--color-text-secondary);font-size:11px;font-weight:600}.page-tip-banner-list{color:var(--color-text-secondary);margin:8px 0 0;padding-left:18px;font-size:12px;line-height:1.6}.page-tip-banner-list li{margin-bottom:2px}.notification-center-wrap{align-items:center;display:inline-flex;position:relative}.noti-trigger-btn{border-radius:var(--radius-full);background:var(--color-bg-surface);border:1px solid var(--color-border);width:38px;height:38px;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex;position:relative}.noti-trigger-btn:hover{background:var(--color-bg-elevated);border-color:var(--color-accent);color:var(--color-accent)}.noti-badge-count{background:var(--color-status-danger);min-width:18px;height:18px;color:var(--color-text-inverse);font-size:10px;font-weight:var(--font-weight-bold);border-radius:var(--radius-full);box-shadow:0 0 0 2px var(--color-bg-surface);justify-content:center;align-items:center;padding:0 4px;animation:2s ease-in-out infinite pulseBadge;display:flex;position:absolute;top:-3px;right:-3px}@keyframes pulseBadge{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.noti-modal-overlay{background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-modal);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.noti-modal-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:440px;max-height:80vh;box-shadow:var(--shadow-lg);flex-direction:column;animation:.2s cubic-bezier(.16,1,.3,1) modalEnter;display:flex;overflow:hidden}@keyframes modalEnter{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.noti-modal-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg-elevated);justify-content:space-between;align-items:center;display:flex}.noti-modal-title{align-items:center;gap:var(--space-2);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary);display:flex}.noti-header-icon{color:var(--color-accent)}.noti-modal-header-actions{align-items:center;gap:var(--space-2);display:flex}.noti-readall-btn{align-items:center;gap:4px;height:24px;padding:2px 8px;font-size:11px;display:inline-flex}.noti-close-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px;line-height:1}.noti-close-btn:hover{color:var(--color-text-primary)}.noti-filter-tabs{gap:var(--space-1);padding:var(--space-2) var(--space-4);background:var(--color-bg-surface);border-bottom:1px solid var(--color-border-subtle);display:flex}.noti-filter-tab{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);text-align:center;background:0 0;border:1px solid #0000;flex:1}.noti-filter-tab:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.noti-filter-tab.active{color:var(--color-accent);background:var(--color-accent-subtle);border-color:var(--color-accent);font-weight:var(--font-weight-bold)}.noti-list-scroll{flex:1;min-height:220px;max-height:480px;overflow-y:auto}.noti-item-list{flex-direction:column;display:flex}.noti-item{justify-content:space-between;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);cursor:pointer;transition:background var(--transition-fast);background:var(--color-bg-surface);display:flex}.noti-item:hover{background:var(--color-bg-elevated)}.noti-item.unread{background:var(--color-accent-subtle)}.noti-item.urgent{background:var(--color-status-danger-bg);border-left:3px solid var(--color-status-danger)}.noti-item-left{align-items:flex-start;gap:var(--space-2);flex:1;display:flex}.noti-item-icon-wrap{flex-shrink:0;margin-top:3px}.noti-dot-unread{border-radius:var(--radius-full);background:var(--color-accent);width:7px;height:7px;display:inline-block}.noti-item:not(.unread) .noti-dot-unread{background:0 0}.noti-badge-urgent{font-size:13px}.noti-item-content{flex:1;min-width:0}.noti-item-top{justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-bottom:2px;display:flex}.noti-item-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-primary);word-break:break-all}.noti-item-time{color:var(--color-text-tertiary);flex-shrink:0;font-size:10px}.noti-item-body{color:var(--color-text-secondary);word-break:break-all;font-size:11.5px;line-height:1.4}.noti-item-right{flex-shrink:0;align-items:center;display:flex}.noti-del-btn{color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.noti-del-btn:hover{color:var(--color-status-danger);background:var(--color-bg-elevated)}.noti-empty-state{padding:var(--space-8) var(--space-4);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.noti-empty-icon{margin-bottom:var(--space-2);opacity:.6;font-size:32px}.noti-empty-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.noti-empty-sub{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:4px}.noti-modal-footer{padding:var(--space-2) var(--space-4);background:var(--color-bg-elevated);border-top:1px solid var(--color-border);text-align:center}.noti-footer-info{color:var(--color-text-tertiary);font-size:10.5px}.app-layout{background:var(--color-bg-primary);min-height:100dvh;display:flex}.sidebar{width:var(--sidebar-width-collapsed);background:var(--color-bg-surface);border-right:1px solid var(--color-border);z-index:100;height:100vh;transition:width var(--transition-slow);flex-direction:column;flex-shrink:0;display:none;position:fixed;top:0;left:0;overflow:hidden}.sidebar-header{padding:var(--space-4) var(--space-3) var(--space-4) var(--space-4);border-bottom:1px solid var(--color-border);min-height:var(--header-height);box-sizing:border-box;justify-content:space-between;align-items:center;display:flex;overflow:hidden}.sidebar-logo{align-items:center;gap:var(--space-3);-webkit-user-select:none;user-select:none;display:flex;overflow:hidden}.sidebar-logo-icon{text-align:center;flex-shrink:0;width:28px;font-size:22px}.sidebar-logo-text{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);white-space:nowrap;opacity:0;transition:opacity var(--transition-slow)}.sidebar-toggle-btn{border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:6px;display:flex}.sidebar-toggle-btn:hover{background:var(--color-bg-elevated);border-color:var(--color-border);color:var(--color-accent)}.sidebar-role-badge{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin:0 var(--space-2) var(--space-1);background:var(--color-accent-subtle);color:var(--color-accent);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;display:none;overflow:hidden}@media (width>=768px){.sidebar-role-badge{display:flex}}.sidebar-nav{gap:var(--space-1);padding:var(--space-4) var(--space-2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar-nav-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2);border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-normal);white-space:nowrap;text-decoration:none;display:flex;overflow:hidden}.sidebar-nav-item>svg{padding:var(--space-2);border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1px solid var(--color-border);box-sizing:border-box;width:36px;height:36px;transition:all var(--transition-normal);flex-shrink:0}.sidebar-nav-item:hover{color:var(--color-accent)}.sidebar-nav-item:hover>svg{background:var(--color-accent-subtle);border-color:var(--color-accent);color:var(--color-accent)}.sidebar-nav-item.active{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.sidebar-nav-item.active>svg{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.sidebar-nav-label{opacity:0;transition:opacity var(--transition-slow);font-size:var(--font-size-sm);flex:1}.sidebar-accordion{flex-direction:column;display:flex}.sidebar-group-btn{cursor:pointer;text-align:left;background:0 0;border:none;width:100%;font-family:inherit}.sidebar-group-btn.group-active{color:var(--color-accent)}.sidebar-group-btn.group-active>svg:first-child{border-color:var(--color-accent);color:var(--color-accent)}.sidebar-chevron{opacity:0;transition:transform var(--transition-normal), opacity var(--transition-slow);color:var(--color-text-tertiary);flex-shrink:0}.sidebar-chevron.open{transform:rotate(90deg)}.sidebar-sub-menu{flex-direction:column;gap:2px;padding:4px 0 6px 14px;animation:.15s ease-out fadeIn;display:flex}.sidebar-sub-item{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-xs);transition:all var(--transition-fast);white-space:nowrap;padding:7px 10px;text-decoration:none;display:flex;overflow:hidden}.sidebar-sub-item:hover{background:var(--color-bg-elevated);color:var(--color-accent)}.sidebar-sub-item.active{background:var(--color-accent-subtle);color:var(--color-accent);font-weight:var(--font-weight-bold)}.sidebar-sub-item>svg{color:var(--color-text-tertiary);flex-shrink:0}.sidebar-sub-item.active>svg{color:var(--color-accent)}@media (width>=768px){.sidebar-chevron{opacity:1}}.sidebar-footer{border-top:1px solid var(--color-border);padding:var(--space-2) var(--space-2);gap:var(--space-1);flex-direction:column;display:flex}.sidebar-footer-btn{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2);border-radius:var(--radius-md);color:var(--color-text-secondary);width:100%;transition:all var(--transition-normal);display:flex;overflow:hidden}.sidebar-footer-btn>svg{padding:var(--space-2);border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1px solid var(--color-border);box-sizing:border-box;width:36px;height:36px;transition:all var(--transition-normal);flex-shrink:0}.sidebar-footer-btn:hover{color:var(--color-accent)}.sidebar-footer-btn:hover>svg{background:var(--color-accent-subtle);border-color:var(--color-accent);color:var(--color-accent)}.sidebar-footer-btn.danger:hover{color:var(--color-status-danger)}.sidebar-footer-btn.danger:hover>svg{background:var(--color-status-danger-bg);border-color:var(--color-status-danger);color:var(--color-status-danger)}.main-content{min-width:0;min-height:100dvh;padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px) + var(--space-4));transition:margin-left var(--transition-slow);flex:1}.page-container{max-width:var(--content-max-width);padding:var(--space-4);margin:0 auto}.bottom-tabbar{width:100%;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-bg-surface);border-top:1px solid var(--color-border);z-index:1000;box-shadow:0 -4px 16px var(--color-shadow-md);align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateZ(0)}.tabbar-item{color:var(--color-icon-default);transition:color var(--transition-fast);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex;position:relative}.tabbar-item.active{color:var(--color-accent)}.tabbar-item.active:before{content:"";background:var(--color-accent);border-radius:0 0 var(--radius-sm) var(--radius-sm);height:2px;position:absolute;top:0;left:20%;right:20%}.tabbar-label{font-size:10px;font-weight:var(--font-weight-medium)}.sidebar-group-label{font-size:11px;font-weight:var(--font-weight-bold);color:var(--color-text-tertiary);padding:var(--space-3) var(--space-4) var(--space-1);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;opacity:0;transition:opacity var(--transition-slow);overflow:hidden}@media (width>=768px){.sidebar-group-label{opacity:1}}.sheet-backdrop{background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:150;flex-direction:column;justify-content:flex-end;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.sheet-container{background:var(--color-bg-surface);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;padding:var(--space-3) var(--space-4) calc(var(--tabbar-height) + var(--space-4));max-height:80vh;box-shadow:0 -8px 32px var(--color-shadow-lg);border-top:1px solid var(--color-border);animation:.25s cubic-bezier(.16,1,.3,1) slideUp;overflow-y:auto}.sheet-handle-bar{padding:var(--space-1) 0 var(--space-2);justify-content:center;display:flex}.sheet-handle{background:var(--color-border);border-radius:var(--radius-full);width:36px;height:4px}.sheet-header{padding-bottom:var(--space-3);margin-bottom:var(--space-3);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.sheet-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.sheet-subtitle{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:2px 0 0}.sheet-close-btn{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-full);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;justify-content:center;align-items:center;display:flex}.sheet-grid{gap:var(--space-2);flex-direction:column;display:flex}.sheet-item-card{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl);text-align:left;cursor:pointer;transition:all var(--transition-fast);width:100%;display:flex}.sheet-item-card:hover,.sheet-item-card:active{background:var(--color-accent-subtle);border-color:var(--color-accent);transform:translateY(-1px)}.sheet-item-card.active{background:var(--color-accent-subtle);border-color:var(--color-accent)}.sheet-item-icon-wrap{border-radius:var(--radius-lg);background:var(--color-bg-surface);border:1px solid var(--color-border);width:40px;height:40px;color:var(--color-accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sheet-item-text{flex:1;min-width:0}.sheet-item-title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.sheet-item-sub{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;overflow:hidden}.sheet-item-arrow{color:var(--color-text-tertiary);flex-shrink:0}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (width>=768px){.sidebar{width:var(--sidebar-width-expanded);display:flex}.sidebar-logo-text,.sidebar-nav-label{opacity:1}.bottom-tabbar{display:none}.main-content{margin-left:var(--sidebar-width-expanded);padding-bottom:0}.page-container{padding:var(--space-5)}.sidebar.collapsed{width:var(--sidebar-width-collapsed)}.sidebar.collapsed .sidebar-header{padding:var(--space-3) 0;flex-direction:column;justify-content:center;gap:6px}.sidebar.collapsed .sidebar-logo{justify-content:center}.sidebar.collapsed .sidebar-logo-text,.sidebar.collapsed .sidebar-nav-label,.sidebar.collapsed .sidebar-chevron,.sidebar.collapsed .sidebar-role-badge,.sidebar.collapsed .sidebar-sub-menu,.sidebar.collapsed .sidebar-mode-text{opacity:0!important;display:none!important}.sidebar.collapsed .sidebar-nav-item,.sidebar.collapsed .sidebar-footer-btn{padding:var(--space-2) 0;justify-content:center}.sidebar.collapsed .sidebar-mode-switch-wrap{padding:var(--space-2) 4px 0}.sidebar.collapsed .sidebar-mode-switch{gap:2px;padding:2px}.sidebar.collapsed .sidebar-mode-btn{justify-content:center;padding:8px 0}.main-content.sidebar-collapsed{margin-left:var(--sidebar-width-collapsed)}}@media (width>=1025px){.page-container{padding:var(--space-6)}}.sidebar-mode-switch-wrap{padding:var(--space-2) var(--space-2) 0;border-top:1px solid var(--color-border);box-sizing:border-box;width:100%}.sidebar-mode-switch{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-sizing:border-box;flex-direction:column;gap:3px;width:100%;padding:3px;display:flex}.sidebar-mode-btn{border-radius:calc(var(--radius-md) - 2px);width:100%;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;box-sizing:border-box;background:0 0;border:none;justify-content:center;align-items:center;gap:5px;padding:6px 2px;font-size:11px;font-weight:700;display:flex}.sidebar-mode-btn:hover{color:var(--color-text-primary);background:var(--color-bg-subtle)}.sidebar-mode-btn.active,.sidebar-mode-btn.active.admin,.sidebar-mode-btn.active.supervisor,.sidebar-mode-btn.active.resident,.sidebar-mode-btn.active.guest{background:var(--color-accent);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.mobile-floating-top-bar,.mobile-floating-mode-toggle{z-index:1000;align-items:center;gap:8px;display:flex;position:fixed;top:10px;right:12px}@media (width>=768px){.mobile-floating-top-bar,.mobile-floating-mode-toggle{display:none}}.mobile-mode-pill{border-radius:var(--radius-full);cursor:pointer;box-shadow:0 4px 12px var(--color-shadow-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--transition-fast);background:var(--color-accent);color:var(--color-text-inverse);border:1.5px solid #ffffff4d;align-items:center;gap:5px;padding:5px 11px;font-size:11px;font-weight:700;display:inline-flex}.mobile-mode-pill.admin,.mobile-mode-pill.supervisor,.mobile-mode-pill.resident,.mobile-mode-pill.guest{background:var(--color-accent);color:var(--color-text-inverse);border-color:#ffffff4d}.mobile-mode-pill .pill-dot{background:var(--color-text-inverse);border-radius:50%;width:6px;height:6px;animation:1.5s infinite pulse;display:inline-block}@keyframes pulse{0%{opacity:.8;transform:scale(.95)}50%{opacity:1;transform:scale(1.2)}to{opacity:.8;transform:scale(.95)}}.first-login-overlay{z-index:9999;background:var(--color-bg-overlay-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:var(--space-4);justify-content:center;align-items:center;animation:.25s ease-out fadeIn;display:flex;position:fixed;inset:0}.first-login-modal{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:400px;box-shadow:var(--shadow-xl);gap:var(--space-5);flex-direction:column;padding:28px 24px;animation:.25s cubic-bezier(.16,1,.3,1) scaleUp;display:flex}.first-login-header{text-align:center;align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.first-login-badge{border-radius:var(--radius-full);background:var(--color-accent-subtle);width:56px;height:56px;color:var(--color-accent);margin-bottom:var(--space-1);justify-content:center;align-items:center;display:flex}.first-login-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:-.02em}.first-login-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.first-login-form{gap:var(--space-4);flex-direction:column;display:flex}.first-login-field{gap:var(--space-1);flex-direction:column;display:flex}.first-login-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.first-login-input-wrap{align-items:center;display:flex;position:relative}.first-login-icon{color:var(--color-text-tertiary);pointer-events:none;position:absolute;left:12px}.first-login-input{width:100%;height:42px;font-size:var(--font-size-sm);padding-left:36px!important;padding-right:38px!important}.first-login-eye{color:var(--color-text-tertiary);border-radius:var(--radius-sm);justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;right:10px}.first-login-eye:hover{color:var(--color-text-primary)}.first-login-error{font-size:var(--font-size-xs);color:var(--color-status-danger);background:var(--color-status-danger-bg);border:1px solid var(--color-status-danger-border);border-radius:var(--radius-md);align-items:center;gap:6px;padding:8px 12px;display:flex}.first-login-actions{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.first-login-submit{height:44px;font-size:var(--font-size-md);font-weight:var(--font-weight-bold)}.first-login-logout{color:var(--color-text-tertiary);font-size:var(--font-size-xs);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:6px;text-decoration:underline}.first-login-logout:hover{color:var(--color-text-secondary)}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
