@font-face{font-family:Noto Sans KR;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-kr-korean-400-normal-CmjJz_gz.woff2) format("woff2"),url(/assets/noto-sans-kr-korean-400-normal-Dvb5JbtY.woff) format("woff")}@font-face{font-family:Noto Sans KR;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-sans-kr-korean-500-normal-BlTm2RPg.woff2) format("woff2"),url(/assets/noto-sans-kr-korean-500-normal-BflsTeeZ.woff) format("woff")}@font-face{font-family:Noto Sans KR;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-kr-korean-600-normal-DaMZfL7Z.woff2) format("woff2"),url(/assets/noto-sans-kr-korean-600-normal-BYr4Gvty.woff) format("woff")}@font-face{font-family:Noto Sans KR;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-sans-kr-korean-700-normal-DvnDzSjd.woff2) format("woff2"),url(/assets/noto-sans-kr-korean-700-normal-KAYYVieF.woff) format("woff")}:root{font-family:Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#101b2c;background:#fbfcfd;font-synthesis:none;--navy: #004e70;--navy-dark: #003e5b;--navy-soft: #edf6f9;--coral: #f04438;--green: #16a766;--ink: #101b2c;--muted: #68758a;--line: #d8e0e8;--line-soft: #e7ecf1}.public-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.home-logo{display:inline-block;max-width:100%;border-radius:8px}.home-logo-art{position:relative;display:block;width:100%;aspect-ratio:815 / 320;overflow:hidden;background:#fff}.home-logo img{position:absolute;display:block;width:137.668712%;max-width:none;height:auto;left:-18.404908%;top:-67.1875%}.home-logo:focus-visible{outline:3px solid var(--navy);outline-offset:5px}.public-home{max-width:760px;margin:60px auto 80px;padding:44px 32px;text-align:center;background:#fff;border:1px solid var(--line-soft);border-radius:24px;box-shadow:0 12px 48px #004e7008}.public-home>.access-back{display:flex;margin:0 0 24px}.home-emblem{display:inline-flex;padding:22px;background:var(--navy-soft);color:var(--navy);border-radius:24px}.home-eyebrow{margin:28px 0 10px;color:var(--navy);font-weight:600;font-size:15px}.public-home h1{margin:0;font-size:clamp(30px,5vw,42px);letter-spacing:-.055em}.home-description{margin:20px 0 30px;color:var(--muted);line-height:1.9;word-break:keep-all}.home-actions{display:grid;gap:12px;max-width:420px;margin:auto}.home-actions button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:15px}.home-privacy{display:flex;align-items:center;justify-content:center;gap:8px;margin:30px 0 0;color:var(--muted);font-size:13px;line-height:1.7}.home-privacy svg{flex-shrink:0}.topbar:has(.public-actions){flex-wrap:wrap}.public-actions .login-button:first-child{color:#fff;background:var(--navy)}.self-registration .content-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr)}.self-registration .access-back{margin:0 0 22px}.registration-guide{padding:32px;align-self:start;background:var(--navy-soft);border-radius:16px;color:var(--navy);overflow-wrap:anywhere;min-width:0}.registration-guide h2{font-size:25px;letter-spacing:-.04em}.registration-guide p{line-height:1.8;white-space:pre-line}.registration-guide ol{padding-left:24px}.registration-guide li{padding:12px 0 12px 8px}.registration-guide li span{display:block;margin-top:8px;color:#4d6274;line-height:1.7;font-size:14px;white-space:pre-line}.permit-page{min-height:100vh;padding:28px 24px 48px;background:#f3f6f8}.permit-toolbar{max-width:1040px;margin:0 auto 24px;display:flex;justify-content:space-between;gap:14px}.permit-toolbar button{display:flex;align-items:center;justify-content:center;gap:9px;width:auto;min-height:48px;padding:12px 20px;font-size:16px}.permit-success{display:flex;align-items:center;justify-content:center;gap:9px;color:#127344;margin-bottom:20px;font-weight:600}.parking-permit{max-width:1040px;margin:auto;padding:38px 48px 26px;border:2px solid #152a40;border-radius:24px;background:var(--permit-background);color:var(--permit-foreground, #142638);box-shadow:0 18px 50px #152a4014;text-align:center}.permit-header{display:flex;justify-content:space-between;align-items:center;gap:20px}.permit-header .home-logo{width:280px;max-width:60%;background:#fff;padding:8px}.permit-month{display:flex;align-items:center;gap:12px}.permit-month strong{font-size:70px;font-weight:700;line-height:1}.permit-month span{font-size:14px}.parking-permit h1{margin:25px 0 10px;font-size:26px;letter-spacing:.22em}.permit-vehicle{margin:12px 0 20px;font-size:clamp(44px,8vw,104px);font-weight:700;letter-spacing:-.035em;line-height:1.2;overflow-wrap:anywhere}.permit-date{margin:0;font-size:clamp(21px,3vw,32px);font-weight:600}.permit-time{margin:12px 0 26px;font-size:clamp(34px,5vw,64px);font-weight:700;line-height:1.3}.permit-time span{font-weight:400}.permit-program{display:grid;gap:7px;border-top:1px solid #14263840;padding-top:20px}.permit-program span{font-size:14px}.permit-program strong{font-size:23px;overflow-wrap:anywhere}.permit-footer{margin-top:24px;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.permit-footer p{margin:5px 0}.permit-footer p:last-child{font-size:10px}.permit-help{max-width:900px;margin:24px auto 0;text-align:center;font-size:14px;color:#4d6274;line-height:1.8}.permit-help button{padding:12px 22px}.permit-lookup{width:min(480px,calc(100% - 36px));margin:50px auto}.permit-lookup>.home-logo{width:240px;max-width:100%}.permit-lookup>p{color:var(--muted);line-height:1.7}.permit-lookup form>label{display:block;margin:22px 0 9px;font-weight:600}.permit-lookup .date-picker-shell{margin-left:0;width:100%}.permit-lookup .primary-button{margin-top:28px}@media(max-width:1040px){.self-registration .content-grid{grid-template-columns:1fr}}@media(max-width:680px){.public-home{margin:24px 16px 40px;padding:30px 20px}.home-description{font-size:14px}.public-actions{width:100%;justify-content:flex-start}.public-actions .login-button{flex:1;font-size:11px;padding:0 8px;white-space:nowrap}.public-actions svg{display:none}.permit-page{padding:18px 12px 30px}.permit-toolbar{gap:8px}.permit-toolbar button{padding:10px 12px;font-size:13px}.parking-permit{padding:22px 16px 20px;border-radius:18px}.permit-header .home-logo{width:175px;padding:4px}.permit-month{display:grid;gap:3px}.permit-month strong{font-size:42px}.permit-month span{font-size:10px}.parking-permit h1{font-size:22px;margin-top:30px}.permit-vehicle{font-size:clamp(36px,10vw,66px);margin:20px 0}.permit-date{font-size:18px}.permit-time{font-size:34px}.permit-program strong{font-size:19px}}@media print{@page{size:A4 landscape;margin:12mm}html,body,.permit-page{background:#fff!important;padding:0!important;margin:0!important;min-height:0!important}.permit-toolbar,.permit-success,.permit-help{display:none!important}.parking-permit{max-width:none;width:100%;min-height:176mm;border-radius:8mm;padding:6mm 10mm;box-shadow:none;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}.permit-header .home-logo{width:50mm}.permit-month strong{font-size:46pt}.parking-permit h1{margin:2mm 0;font-size:18pt}.permit-vehicle{font-size:50pt;margin:3mm 0}.permit-date{font-size:22pt}.permit-time{font-size:32pt;margin:2mm 0 4mm}.permit-program{padding-top:4mm}.permit-program strong{font-size:14pt;line-height:1.35}.permit-footer{margin-top:4mm}}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased;background:#fbfcfd}button,input,textarea,select{font:inherit}button,select,input[type=date]{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(0,93,132,.22);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh;background:#fff}.topbar{min-height:98px;padding:9px clamp(24px,3.3vw,54px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fffffff7}.brand-wrap,.privacy-badge,.role-button,.login-button,.date-controls,.time-row,.time-select,.privacy-note,.section-kicker,.list-heading,.access-footnote{display:flex;align-items:center}.brand-wrap{gap:22px;min-width:0}.brand-logo{width:246px;height:auto;flex:none}.header-divider{width:1px;height:34px;background:var(--line)}.privacy-badge{gap:8px;color:var(--muted);font-size:14px;white-space:nowrap}.privacy-badge svg{color:var(--green)}.role-button{gap:8px;border:0;background:transparent;color:#1c2532;font-weight:600;padding:10px 4px;white-space:nowrap}.login-button{min-height:44px;gap:8px;padding:0 16px;border:1px solid var(--navy);border-radius:8px;background:#fff;color:var(--navy);font-size:14px;font-weight:700;transition:background .15s ease,color .15s ease}.login-button:hover{background:var(--navy);color:#fff}.admin-control{position:relative}.role-button svg{transition:transform .16s ease}.role-button svg.is-open{transform:rotate(180deg)}.admin-menu{position:absolute;z-index:30;top:calc(100% + 8px);right:0;width:270px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 18px 46px #101b2c29}.admin-menu-title{display:flex;align-items:center;gap:10px;padding:9px 10px 13px;margin-bottom:5px;border-bottom:1px solid var(--line-soft);color:var(--navy)}.admin-menu-title span,.manager-name,.admin-menu-title strong,.admin-menu-title small{display:block}.admin-menu-title small{margin-top:2px;color:var(--muted);font-size:11px;font-weight:400}.admin-menu>button{width:100%;min-height:42px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:#293647;display:flex;align-items:center;gap:9px;text-align:left}.admin-menu>button:hover{background:var(--navy-soft);color:var(--navy)}.workspace{width:min(100%,1440px);margin:0 auto;padding:38px clamp(32px,3.3vw,54px) 48px}.viewer-workspace{width:min(100%,1440px);margin:0 auto;padding:42px clamp(32px,3.3vw,54px) 64px}.viewer-hero{padding:0 0 36px}.viewer-kicker{width:fit-content;padding:7px 12px;border-radius:999px;background:var(--navy-soft);color:var(--navy);display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700}.viewer-title-row{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:32px}.viewer-title-row h1{margin:0;font-size:clamp(35px,3.2vw,49px);line-height:1.2;letter-spacing:-.045em}.viewer-title-row p{margin:10px 0 0;color:var(--muted);font-size:16px}.viewer-count-card{min-width:190px;padding:16px 20px;border:1px solid #cfe1e7;border-radius:12px;background:#f7fbfc;display:flex;align-items:center;gap:13px}.viewer-count-icon{width:48px;height:48px;border-radius:10px;background:var(--navy);color:#fff;display:grid;place-items:center}.viewer-count-card>span:last-child{color:#5e6d80;font-size:13px}.viewer-count-card strong{display:block;margin-top:1px;color:var(--ink);font-size:25px;line-height:1.2}.viewer-date-controls{margin-top:30px}.viewer-list-section{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 12px 34px #101b2c0f}.viewer-list-header{min-height:92px;padding:20px 26px;border-bottom:1px solid var(--line);background:#fbfcfd;display:flex;align-items:center;justify-content:space-between;gap:24px}.viewer-list-header h2{margin:0;font-size:22px;letter-spacing:-.03em}.viewer-list-header p{margin:5px 0 0;color:var(--muted);font-size:13px}.refresh-button{min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#405066;display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;white-space:nowrap}.refresh-button:hover:not(:disabled){border-color:var(--navy);color:var(--navy)}.refresh-button:disabled{opacity:.6;cursor:wait}.is-spinning{animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.viewer-table-wrap{overflow-x:auto;padding:0 26px}.viewer-table th{height:58px;padding:0 16px;border-bottom:1px solid var(--line);color:#59677a;font-size:14px}.viewer-table th:nth-child(1){width:25%}.viewer-table th:nth-child(2){width:47%}.viewer-table th:nth-child(3){width:28%}.viewer-table td{height:86px;padding:18px 16px;font-size:16px}.viewer-table tbody tr:hover td{background:#f7fbfc}.viewer-vehicle strong{color:var(--ink);font-size:24px;letter-spacing:.035em}.viewer-program{font-size:17px!important;font-weight:600}.viewer-time{color:#344359;display:table-cell;font-weight:600;white-space:nowrap}.viewer-time svg{margin-right:7px;vertical-align:-4px;color:var(--navy)}.viewer-empty{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#7b8798}.viewer-error{margin:20px 26px 0;padding:12px 14px;border-radius:8px;background:#fff2f0;color:#b42318}.viewer-privacy{margin:0;padding:16px 26px;background:#fbfcfd;color:#748196;display:flex;align-items:center;gap:8px;font-size:12px}.date-heading h1{margin:0;font-size:clamp(31px,3.1vw,47px);line-height:1.2;letter-spacing:-.045em;font-weight:700}.date-controls{gap:8px;margin-top:28px}.date-controls>button,.date-picker-wrap{height:48px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#2e3949}.date-controls>button{padding:0 20px;font-weight:500}.date-controls>.icon-button{width:48px;padding:0;display:grid;place-items:center}.date-controls>.date-nav-button{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.date-nav-button svg{transition:transform .18s cubic-bezier(.22,1,.36,1)}.date-controls>.date-nav-button:hover{color:var(--navy);background:var(--navy-soft);border-color:#87b5c5;box-shadow:0 7px 16px #004e701a;transform:translateY(-2px)}.date-controls>.date-nav-button:active{color:var(--navy);background:#dceef3;border-color:var(--navy);box-shadow:0 2px 6px #004e701f;transform:translateY(0) scale(.96);transition-duration:80ms}.date-nav-button.previous-button:hover svg{transform:translate(-3px)}.date-nav-button.next-button:hover svg{transform:translate(3px)}.date-nav-button.previous-button:active svg{transform:translate(-1px)}.date-nav-button.next-button:active svg{transform:translate(1px)}.date-controls>.today-button{color:#fff;background:var(--navy);border-color:var(--navy);box-shadow:0 4px 10px #004e7029}.date-picker-shell{position:relative;margin-left:20px;min-width:232px;height:48px}.date-picker-wrap{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;text-align:left;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.date-picker-wrap:hover{color:var(--navy);background:var(--navy-soft);border-color:#87b5c5}.date-picker-wrap.is-open{color:var(--navy);background:var(--navy-soft);border-color:var(--navy);box-shadow:0 0 0 3px #004e701a}.date-picker-wrap span{color:#465164;font-size:15px}.date-picker-wrap svg{color:#607086}.date-picker-wrap.is-open svg{color:var(--navy)}.calendar-popover{position:absolute;z-index:30;top:calc(100% + 12px);right:0;width:344px;padding:18px;border:1px solid #cfdae3;border-radius:16px;background:#fff;box-shadow:0 24px 56px #101b2c2e,0 5px 16px #004e7014;animation:calendar-popover-in .16s cubic-bezier(.22,1,.36,1)}.calendar-header{min-height:40px;display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:8px}.calendar-header strong{color:var(--ink);text-align:center;font-size:17px;letter-spacing:-.02em}.calendar-header .calendar-month-button{width:38px;height:38px;padding:0;border:1px solid transparent;border-radius:9px;display:grid;place-items:center;color:#465164;background:#fff;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.calendar-header .calendar-month-button:hover{color:var(--navy);background:var(--navy-soft);border-color:#b8d5df}.calendar-header .calendar-month-button:active{transform:scale(.94)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;justify-items:center}.calendar-weekdays{margin:14px 0 7px}.calendar-weekdays span{min-height:24px;display:grid;place-items:center;color:#7d8999;font-size:12px;font-weight:600}.calendar-weekdays span:first-child{color:#d84940}.calendar-weekdays span:last-child{color:var(--navy)}.calendar-grid .calendar-day{width:38px;height:38px;padding:0;border:0;border-radius:9px;display:grid;place-items:center;color:#334055;background:transparent;font-size:13px;font-weight:500;transition:background-color .14s ease,color .14s ease,box-shadow .14s ease,transform .14s ease}.calendar-grid .calendar-day:hover{color:var(--navy);background:var(--navy-soft);transform:translateY(-1px)}.calendar-grid .calendar-day.is-outside{color:#b1bbc8}.calendar-grid .calendar-day.is-today:not(.is-selected){color:var(--coral);box-shadow:inset 0 0 0 1px #f3a39d;font-weight:700}.calendar-grid .calendar-day.is-selected{color:#fff;background:var(--navy);box-shadow:0 5px 12px #004e7038;font-weight:700}.calendar-grid .calendar-day.is-selected:hover{color:#fff;background:var(--navy-dark)}.calendar-footer{margin-top:14px;padding-top:13px;border-top:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-footer button{min-height:34px;padding:0 10px;border:0;border-radius:8px;color:var(--navy);background:var(--navy-soft);font-size:12px;font-weight:700}.calendar-footer button:hover{background:#dceef3}.calendar-footer span{color:#7b8798;font-size:11px}@keyframes calendar-popover-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(560px,1.08fr);gap:42px;margin-top:40px}.registration-panel{padding-right:40px;border-right:1px solid var(--line)}.content-grid.is-editing{overflow-anchor:none}.registration-panel.is-editing{min-height:100vh;min-height:100dvh}.section-kicker{justify-content:space-between;min-height:38px;margin-bottom:16px}.section-kicker h2{margin:0;font-size:20px;letter-spacing:-.02em}#form-title{scroll-margin-top:16px}.text-button{border:0;background:transparent;color:var(--navy);font-size:14px;font-weight:600}.field-group{margin-bottom:34px}.credential-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:-4px 0 34px}.credential-field label{display:block;margin-bottom:10px;color:#151e2a;font-size:16px;font-weight:700}.credential-field label span{color:var(--coral)}.field-group label,.field-group legend{display:block;color:#151e2a;font-size:16px;font-weight:700;margin-bottom:10px}.field-group label>span,.field-group legend>span,.label-row label span{color:var(--coral)}.label-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.label-row>span{align-self:flex-end;color:#758196;font-size:13px;margin-bottom:10px}textarea,.vehicle-input,.text-input{width:100%;border:1px solid #b9c6d3;border-radius:8px;background:#fff;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}textarea{min-height:136px;resize:vertical;padding:18px;line-height:1.6}textarea:focus,.vehicle-input:focus,.text-input:focus{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}.vehicle-input{height:92px;padding:8px 18px;font-size:clamp(34px,3.1vw,48px);font-weight:700;letter-spacing:.08em}.text-input{height:54px;padding:0 14px}.credential-helper{grid-column:1 / -1;margin:-5px 0 0;color:#768397;font-size:12px}.helper-text{margin:8px 0 0;color:#768397;font-size:13px}.time-fieldset{padding:0;border:0}.time-row{gap:14px}.time-row>span{color:#5f6c7f;font-size:14px}.field-group label.time-select,.extra-schedule label.time-select{display:flex;align-items:center;flex:1;min-width:0;height:58px;gap:8px;padding:0 14px;margin:0;border:1px solid #b9c6d3;border-radius:8px;background:#fff}.time-select svg{flex:none}.time-select select{width:100%;height:100%;border:0;outline:0;background:transparent;color:#1a2432;font-size:16px}.primary-button{width:100%;min-height:62px;border:0;border-radius:8px;background:var(--navy);color:#fff;font-size:20px;font-weight:700;box-shadow:0 5px 14px #004e7024;transition:background .15s ease,transform .15s ease}.primary-button:hover:not(:disabled){background:var(--navy-dark);transform:translateY(-1px)}.primary-button:disabled{opacity:.62;cursor:wait}.delete-button{width:100%;min-height:44px;margin-top:10px;border:1px solid #f0b5b0;border-radius:8px;background:#fff;color:#b42318;display:flex;align-items:center;justify-content:center;gap:7px;font-weight:600}.privacy-note{gap:8px;margin:16px 0 0;color:#6c788b;font-size:13px;line-height:1.5}.privacy-note svg{flex:none}.form-error,.field-error{color:#b42318;background:#fff2f0;border-radius:7px;padding:10px 12px;font-size:13px}.form-error{margin:-8px 0 14px}.vehicle-list-panel{min-width:0;padding-top:4px}.list-heading{justify-content:space-between;gap:20px;min-height:44px;padding-bottom:14px;border-bottom:1px solid var(--line)}.list-heading h2{margin:0;font-size:22px;letter-spacing:-.025em}.list-heading h2 strong{color:var(--coral);font-weight:700}.list-toolbar,.list-filter{display:flex;align-items:center;gap:8px}.list-filter{padding:4px;border:1px solid var(--line);border-radius:10px;background:#f4f7f9}.list-filter button{min-height:34px;padding:7px 11px;border:0;border-radius:7px;color:#607084;background:transparent;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.list-filter button:hover,.list-filter button.is-active{color:#fff;background:var(--navy)}.upcoming-table th:nth-child(1){width:18%}.upcoming-table th:nth-child(2){width:17%}.upcoming-table th:nth-child(3){width:27%}.upcoming-table th:nth-child(4){width:18%}.upcoming-table th:nth-child(5){width:20%}.visit-date{color:var(--navy);font-size:13px;white-space:nowrap}.month-color-panel{margin-top:44px;padding:28px;border:1px solid var(--line);border-radius:18px;background:#fff}.month-color-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.month-color-heading .home-eyebrow{margin:0 0 8px;font-size:12px}.month-color-heading h2{margin:0;font-size:23px;letter-spacing:-.035em}.month-color-heading>p{margin:0;color:var(--muted);font-size:13px;line-height:1.7;word-break:keep-all}.month-color-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.month-color-card{border:1px solid var(--line-soft);border-radius:12px;padding:8px}.month-color-card.is-current{border:2px solid var(--navy);padding:7px}.month-color-swatch{height:68px;display:flex;align-items:center;justify-content:center;border-radius:7px;color:#142638}.month-color-swatch span{font-size:28px;font-weight:700}.month-color-label{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:10px 3px 4px;font-size:13px}.month-color-label span{color:var(--navy);background:var(--navy-soft);padding:3px 6px;border-radius:5px;font-size:10px;font-weight:600}.month-color-name{margin:2px 3px 4px;color:var(--muted);font-size:11px}.reception-control{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px;margin-bottom:30px;border:1px solid #bbdacd;border-radius:16px;background:#f1faf5}.reception-control h2{margin:10px 0 8px;font-size:21px}.reception-control p{margin:0;font-size:13px;color:#4f6c62;line-height:1.8}.reception-control button{width:auto;padding:12px 22px;min-width:126px;flex-shrink:0}.reception-control.is-closed{background:#fff5ed;border-color:#f1c397}.status-badge{display:inline-flex;width:fit-content;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;color:#24684b;background:#e1f3e9;white-space:nowrap}td>.status-badge{display:flex;margin-top:8px}.status-badge.pending{color:#865509;background:#fff0ce}.status-badge.approved{color:#226847;background:#e5f6eb}.approve-button{display:inline-flex;align-items:center;gap:4px;border:1px solid #add5bf;color:#1b6847;background:#fff;border-radius:6px;padding:8px 10px;font-size:12px;font-weight:600;white-space:nowrap}.approve-button:hover:not(:disabled){border-color:#1b6847}.approve-button.is-approved{background:#edf9f2}.approve-button:disabled{cursor:default}.approve-button:disabled:not(.is-approved){opacity:.65;cursor:wait}.row-actions{flex-wrap:wrap}.program-editor>label{display:block;font-size:14px;font-weight:600;margin:22px 0 10px}.program-add-row{display:flex;gap:10px}.program-add-row button{display:inline-flex;align-items:center;gap:5px;flex:none;padding:10px 14px;white-space:nowrap;font-size:13px}.program-edit-list{list-style:none;padding:0;margin:14px 0;display:grid;gap:8px}.program-edit-list li{display:flex;align-items:center;gap:8px;min-width:0}.program-edit-list li>span{color:var(--muted);font-size:12px;width:18px;flex:none}.program-edit-list .text-input{min-width:0}.program-edit-list button{padding:10px;color:#b13e36}.program-save{padding:12px 16px;font-size:13px}.settings-reception{padding:18px;margin:28px 0;border-radius:12px;background:var(--navy-soft)}.settings-reception strong{display:block;margin-bottom:14px}.settings-reception button{padding:12px 16px;font-size:14px}.settings-reception p{font-size:12px;color:var(--muted);line-height:1.8}.privacy-consent{padding:22px;margin-bottom:26px;border:1px solid var(--line);border-radius:12px;background:#f8fafb}.privacy-consent h3{font-size:16px;margin:0 0 16px}.privacy-consent dl{margin:0;font-size:13px;line-height:1.8;color:#526274}.privacy-consent dt{font-weight:700;color:#344659;margin-top:12px}.privacy-consent dd{margin:3px 0 0;white-space:pre-line;overflow-wrap:anywhere}.privacy-consent h3,.consent-check span,.registration-guide h2,.registration-guide li strong{white-space:pre-line;overflow-wrap:anywhere}.consent-check{display:flex;align-items:start;gap:10px;padding:18px 0 0;margin-top:18px;border-top:1px solid var(--line);font-size:14px;font-weight:600;line-height:1.8}.consent-check input{flex:none;width:21px;height:21px;accent-color:var(--navy);margin-top:2px}.consent-check b{color:var(--coral);font-size:12px}.pending-page{min-height:100vh;padding:28px 20px 50px;background:#f4f7fa}.pending-page>.home-logo{display:block;width:240px;margin:0 auto 24px}.pending-card{max-width:640px;margin:0 auto 24px;padding:36px;border:1px solid var(--line);border-radius:22px;background:#fff;text-align:center}.pending-icon{display:inline-flex;padding:20px;border-radius:22px;background:#fff1d0;color:#9a6812}.pending-card .home-eyebrow{font-size:13px}.pending-card h1{font-size:36px;margin:14px 0;letter-spacing:-.05em}.pending-card>p{font-size:14px;line-height:1.9;color:var(--muted)}.pending-card>.pending-watermark{background:#fff7e5;border-radius:8px;padding:12px;color:#885409;font-weight:600}.pending-details{text-align:left;margin:24px 0;padding:22px;background:#f5f8fa;border-radius:12px}.pending-details>strong{font-size:31px;color:var(--ink)}.pending-details>p{font-size:14px}.pending-details ul{list-style:none;margin:20px 0 0;padding:0}.pending-details li{font-size:13px;border-top:1px solid var(--line);padding:12px 0}.pending-details b{display:block;margin-top:7px;font-size:20px}.pending-card .primary-button{display:flex;align-items:center;justify-content:center;gap:8px}.pending-card .access-back{margin:20px auto 0}.pending-page>.parking-notice{max-width:640px;margin:auto}.statistics-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.statistics-heading .home-eyebrow{font-size:13px;margin:0 0 8px}.statistics-heading h1{font-size:32px;margin:0 0 14px;letter-spacing:-.04em}.statistics-heading p:last-child{font-size:13px;color:var(--muted);line-height:1.8}.statistics-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.statistics-controls label{font-size:13px;white-space:nowrap}.statistics-controls .text-input{width:170px}.statistics-controls button{display:inline-flex;align-items:center;gap:6px;padding:12px;font-size:13px}.statistics-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:28px}.statistics-cards>div{border:1px solid var(--line);border-radius:16px;padding:24px;background:#fff;color:var(--navy)}.statistics-cards span{display:block;margin:14px 0 12px;font-size:13px;color:var(--muted)}.statistics-cards strong{display:block;font-size:40px;letter-spacing:-.04em}.statistics-cards small{font-size:16px;margin-left:7px}.statistics-cards .statistics-hours{font-size:29px;padding-top:10px}.statistics-table-wrap{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.statistics-table th,.statistics-table td{width:auto;text-align:left;padding:20px;font-size:14px;white-space:normal}.statistics-explanation{padding:24px;margin-top:24px;border-radius:16px;background:var(--navy-soft)}.statistics-explanation h2{font-size:18px;margin:0 0 12px}.statistics-explanation ul{padding-left:20px;margin:0;font-size:13px;color:#526274;line-height:1.9}.statistics-explanation li+li{margin-top:8px}.admin-tabs{display:flex;gap:8px;margin:0 0 30px;padding:6px;border:1px solid var(--line);border-radius:14px;width:fit-content;background:#fff}.admin-tabs button{border:0;padding:12px 22px;border-radius:9px;color:var(--muted);background:transparent;font-weight:600}.admin-tabs button.is-active{background:var(--navy);color:#fff}.parking-notice{display:flex;gap:14px;align-items:flex-start;margin:0 0 28px;padding:20px 24px;border:1px solid #f4c47a;border-left:5px solid #db7a12;border-radius:12px;background:#fff8e9;color:#754008;text-align:left}.parking-notice svg{flex-shrink:0;color:#bd6506}.parking-notice strong{display:block;font-size:16px}.parking-notice p{margin:7px 0 0;white-space:pre-line;line-height:1.8;font-size:14px;word-break:keep-all}.registration-closed{padding:18px;background:#fff0ed;color:#a62c20;border-radius:10px;white-space:pre-line}.program-preset{margin-bottom:12px}.extra-schedules{border-top:1px solid var(--line);padding-top:22px;margin-bottom:28px}.extra-schedules h3{margin:0;font-size:16px}.extra-schedules .section-kicker>span{color:var(--muted);font-size:13px}.extra-schedule{margin:20px 0;padding:14px;border:1px solid var(--line);border-radius:12px;min-width:0;background:#f8fbfc}.extra-schedule legend{font-size:13px;font-weight:600;color:var(--navy);padding:0 6px}.workspace>.date-heading{margin-bottom:28px}.schedule-date-row .date-picker-shell{min-width:0;flex:1}.schedule-date-row .text-button{flex:none;white-space:nowrap}.schedule-date-row .date-picker-wrap{width:100%}.schedule-date-row{display:flex;justify-content:space-between;gap:12px;margin-bottom:16px}.schedule-date-row .date-picker-shell{margin-left:0}.schedule-date-row .text-button{display:flex;align-items:center;gap:4px;color:#b94136}.add-schedule{width:100%;padding:14px;border-style:dashed;color:var(--navy)}.list-schedule+.list-schedule{margin-top:8px;padding-top:8px;border-top:1px solid var(--line-soft)}.list-schedule{white-space:nowrap}.list-schedule small,.visit-date+small{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}.settings-intro{margin-bottom:28px}.settings-intro .home-eyebrow{margin:0 0 8px;font-size:13px}.settings-intro h1{margin:0 0 12px;font-size:32px;letter-spacing:-.05em}.settings-intro>p:last-child{color:var(--muted);line-height:1.8}.settings-shortcuts{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.settings-shortcuts button{padding:11px 16px;font-size:13px}.settings-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr);gap:28px;align-items:start}.settings-fields{display:grid;gap:22px;min-width:0}.settings-card{padding:28px;border:1px solid var(--line);border-radius:18px;background:#fff}.settings-card h2,.settings-preview h2{font-size:20px;margin:0 0 14px;letter-spacing:-.035em}.settings-card>p,.settings-preview>p,.settings-help p{font-size:13px;line-height:1.85;color:var(--muted)}.settings-card>label,.settings-preview>label{display:block;font-size:14px;font-weight:600;margin:24px 0 10px}.settings-card textarea{width:100%;font-size:14px;line-height:1.8;min-height:0}.copy-field{margin-top:20px;min-width:0}.copy-field>label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px;font-size:14px;font-weight:600}.copy-field small{font-size:11px;font-weight:400;white-space:nowrap;color:var(--muted)}.copy-caution{padding:13px 16px;border:1px solid #eedcb2;border-radius:10px;background:#fffbef}.copy-step{margin:24px 0;padding:0 16px 18px;border:1px solid var(--line);border-radius:12px;min-width:0}.copy-step legend{padding:0 8px;font-size:13px;font-weight:600;color:var(--navy)}.copy-preview{margin:24px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.copy-preview>summary{padding:16px;font-size:14px;font-weight:600;color:var(--navy);cursor:pointer}.copy-preview>.privacy-consent,.copy-preview>.registration-guide{margin:0;border-radius:0;border:0;padding:20px}.copy-save{margin-top:8px}.settings-color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.settings-color{border:1px solid var(--line-soft);border-radius:12px;padding:12px}.settings-color>div{display:flex;align-items:center;justify-content:space-between;gap:6px}.settings-color input[type=color]{padding:0;width:44px;height:38px;border:0;background:transparent;cursor:pointer}.settings-color input[type=color]:disabled{opacity:.2;cursor:default}.settings-color label{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:12px;white-space:nowrap}.settings-color input[type=checkbox],.settings-switch input{accent-color:var(--navy);width:17px;height:17px}.settings-inline-actions{display:flex;gap:10px;flex-wrap:wrap}.settings-inline-actions button{padding:10px 14px;font-size:13px}.settings-card>.settings-switch{display:flex;align-items:center;gap:10px;padding:16px;background:var(--navy-soft);border-radius:10px}.settings-preview{position:sticky;top:24px;padding:24px;background:#f1f6f8;border-radius:18px;min-width:0}.mini-permit{border:1.5px solid #142638;border-radius:14px;padding:22px 18px;margin:20px 0;text-align:center}.mini-permit .home-logo{width:180px;padding:4px;background:#fff}.mini-permit>span{display:block;font-size:12px;margin-top:12px}.mini-permit h3{letter-spacing:.2em;font-size:16px}.mini-permit>strong{font-size:35px;letter-spacing:-.04em}.mini-permit>p{font-size:13px}.mini-permit small{display:block;font-size:10px;border-top:1px solid currentColor;padding-top:12px;line-height:1.8;overflow-wrap:anywhere;white-space:pre-line}.settings-preview .parking-notice{padding:15px 12px;gap:8px;margin:20px 0}.settings-preview .parking-notice strong{font-size:13px}.settings-preview .parking-notice p{font-size:12px}.settings-help{border-top:1px solid var(--line);padding-top:10px}.settings-help h3{font-size:15px}.settings-savebar{position:sticky;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:26px;padding:18px 22px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 6px 30px #004e7014;z-index:4}.settings-savebar span{color:var(--navy);font-size:13px;line-height:1.7}.settings-savebar .primary-button{width:auto;padding:12px 26px;white-space:nowrap}.access-code-settings{margin-top:28px}.access-code-settings h2{display:flex;align-items:center;gap:8px}.access-code-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0 18px}.access-code-fields label{display:block;margin-bottom:10px;font-size:14px;font-weight:600}.show-code{display:flex;gap:8px;align-items:center;font-size:13px}.show-code input{accent-color:var(--navy);width:17px;height:17px}.change-code-button{padding:14px 22px;margin-top:20px}.settings-success{color:#107146;background:#edf9f2;padding:14px;border-radius:8px;font-size:14px;line-height:1.8}.permit-schedules{text-align:left;margin:20px 0 24px}.permit-schedules h2{display:flex;align-items:center;justify-content:space-between;font-size:16px;gap:10px}.permit-schedules h2 span{font-size:12px;font-weight:400}.permit-schedule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.permit-schedule{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;row-gap:4px;border:1px solid currentColor;border-radius:10px;padding:12px}.schedule-month{grid-row:span 2;border:1px solid #14263855;border-radius:7px;padding:10px 7px;font-size:12px;font-weight:700}.permit-schedule strong{font-size:14px}.permit-schedule b{font-size:23px}.permit-program{border-color:currentColor}.permit-footer p:first-child{white-space:pre-line}@media(max-width:980px){.settings-layout{grid-template-columns:1fr}.settings-preview{position:static}.access-code-fields{grid-template-columns:1fr}}@media(max-width:680px){.admin-tabs{width:100%}.admin-tabs button{flex:1;padding:12px 8px;font-size:12px}.reception-control{align-items:stretch;flex-direction:column;padding:20px;gap:16px}.reception-control button{width:100%;min-height:48px;font-size:16px}.program-add-row{flex-direction:column}.program-add-row button{justify-content:center;min-height:44px}.privacy-consent{padding:18px}.pending-card{padding:26px 20px}.pending-card h1{font-size:32px}.pending-details{padding:18px}.statistics-heading{flex-direction:column;align-items:stretch}.statistics-cards{grid-template-columns:1fr;gap:12px}.statistics-cards>div{padding:20px}.statistics-cards strong{font-size:34px}.statistics-table td{text-align:right;padding:12px 18px}.statistics-table tr{padding:14px 0}.parking-notice{padding:16px;gap:10px}.parking-notice strong{font-size:14px}.parking-notice p{font-size:13px}.settings-color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-card,.settings-preview{padding:20px 16px}.settings-savebar{flex-direction:column;align-items:stretch;padding:14px;gap:10px}.settings-savebar .primary-button{width:100%}.extra-schedule{padding:12px}.extra-schedule .time-row{gap:6px}.extra-schedule .time-select{min-width:0}.extra-schedule .time-select svg{display:none}.extra-schedule .time-select select{padding-left:10px;font-size:15px}.permit-success{font-size:12px}.permit-schedule-grid{grid-template-columns:1fr}.permit-schedules h2{align-items:start;flex-direction:column}.permit-schedule strong{font-size:13px}.permit-schedule b{font-size:24px}}@media print{@page{size:A4 landscape;margin:10mm}.parking-permit{min-height:184mm;width:277mm;max-width:277mm}.multi-schedule-permit{padding:5mm 8mm}.multi-schedule-permit .permit-header .home-logo{width:42mm}.multi-schedule-permit .permit-month strong{font-size:32pt}.multi-schedule-permit .permit-vehicle{font-size:40pt;margin:2mm 0}.permit-schedules{margin:2mm 0 3mm}.permit-schedules h2{margin:1mm 0 2mm;font-size:11pt;flex-direction:row}.permit-schedules h2 span{font-size:8pt}.permit-schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5mm 3mm}.permit-schedule{border-radius:2mm;padding:1.5mm 2mm;display:flex;justify-content:space-between;gap:2mm;break-inside:avoid}.schedule-month{padding:1mm 1.5mm;font-size:8pt}.permit-schedule strong{font-size:10pt}.permit-schedule b{font-size:14pt;white-space:nowrap}.multi-schedule-permit .permit-program{padding-top:2mm}.multi-schedule-permit .permit-program strong{font-size:11pt}.multi-schedule-permit .permit-footer{margin-top:2mm;font-size:8pt}.multi-schedule-permit .permit-footer p:last-child{font-size:7pt}.dense-permit .permit-schedule{padding:1mm 2mm}.dense-permit .permit-schedule b{font-size:12pt}.dense-permit .permit-vehicle{font-size:32pt}}@media(max-width:680px){.month-color-panel{padding:20px 16px}.month-color-heading{align-items:start;flex-direction:column;gap:12px}.month-color-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}}.list-heading>span{color:#7a8596;font-size:13px;white-space:nowrap}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;table-layout:fixed}th{height:48px;color:#526074;font-size:13px;font-weight:600;text-align:left}th:nth-child(1){width:18%}th:nth-child(2){width:36%}th:nth-child(3){width:22%}th:nth-child(4){width:24%}td{min-height:74px;padding:19px 10px 19px 0;border-bottom:1px solid var(--line-soft);color:#1d2836;font-size:14px;vertical-align:middle}td strong{font-size:16px;white-space:nowrap}.manager-name{margin-top:5px;color:#778396;font-size:12px}tr.is-editing td{background:#f1f8fa}.edit-button{min-height:38px;padding:0 10px;border:1px solid var(--navy);border-radius:7px;background:#fff;color:var(--navy);display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;white-space:nowrap}.row-actions{display:flex;align-items:center;gap:6px}.delete-row-button{min-height:38px;padding:0 10px;border:1px solid #e8aaa4;border-radius:7px;background:#fff;color:#b42318;display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;white-space:nowrap}.delete-row-button:hover{background:#fff4f2}.list-note{margin:14px 0 0;color:#7d8899;font-size:12px}.empty-state{min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#7b8798}.toast{position:fixed;right:32px;bottom:28px;z-index:20;min-width:min(390px,calc(100vw - 32px));min-height:70px;padding:14px 16px;border-left:4px solid var(--green);border-radius:8px;background:#fff;box-shadow:0 14px 36px #101b2c2e;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:600}.toast>svg{color:var(--green);flex:none}.toast button{margin-left:auto;border:0;background:transparent;color:#7a8596;display:grid;place-items:center}.dialog-backdrop{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;padding:20px;display:grid;place-items:center;background:#07121e7a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.delete-dialog{position:relative;width:min(440px,100%);padding:32px;border-radius:16px;background:#fff;box-shadow:0 24px 70px #08142247}.dialog-close{position:absolute;top:16px;right:16px;width:38px;height:38px;border:0;border-radius:50%;background:#f3f5f7;color:#68758a;display:grid;place-items:center}.dialog-icon{width:54px;height:54px;border-radius:50%;background:#fff1ef;color:#c43227;display:grid;place-items:center}.delete-dialog h2{margin:18px 0 8px;font-size:24px;letter-spacing:-.035em}.delete-dialog>p{margin:0 0 24px;color:var(--muted);line-height:1.65}.delete-dialog form label{display:block;margin-bottom:9px;font-weight:600}.delete-dialog form input{width:100%;height:52px;padding:0 14px;border:1px solid #b9c6d3;border-radius:8px}.dialog-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:9px;margin-top:20px}.secondary-button,.danger-button{min-height:50px;border-radius:8px;font-weight:700}.secondary-button{border:1px solid var(--line);background:#fff;color:#445166}.danger-button{border:1px solid #bf2f24;background:#bf2f24;color:#fff}.secondary-button:disabled,.danger-button:disabled,.dialog-close:disabled{opacity:.55;cursor:wait}.access-shell{min-height:100vh;padding:24px;display:grid;place-items:center;background:#f5f8fa}.access-panel{width:min(440px,100%);padding:34px 38px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 20px 50px #101b2c14}.access-panel>.home-logo{display:block;width:250px;height:auto;margin:0 auto 30px}.access-icon{width:56px;height:56px;border-radius:50%;background:var(--navy-soft);color:var(--navy);display:grid;place-items:center}.access-panel h1{margin:18px 0 8px;font-size:27px;letter-spacing:-.035em}.access-panel>p{margin:0 0 26px;color:var(--muted);line-height:1.65}.access-panel form label{display:block;margin-bottom:9px;font-weight:600}.access-panel form input{width:100%;height:54px;padding:0 14px;border:1px solid #b9c6d3;border-radius:8px;margin-bottom:14px}.access-panel .primary-button{min-height:54px;font-size:17px}.access-back{width:100%;min-height:44px;margin-top:10px;border:0;background:transparent;color:#5f6d80;display:flex;align-items:center;justify-content:center;gap:5px;font-size:13px;font-weight:600}.access-back:hover{color:var(--navy)}.access-footnote{justify-content:center;gap:7px;margin-top:20px;color:#718094;font-size:12px}@media(max-width:1040px){.privacy-badge,.header-divider{display:none}.content-grid{grid-template-columns:1fr;gap:42px}.registration-panel{padding-right:0;padding-bottom:40px;border-right:0;border-bottom:1px solid var(--line)}}@media(max-width:680px){.topbar{min-height:68px;padding:8px 18px}.brand-logo{width:188px;height:auto}.role-button{font-size:0}.role-button svg{width:22px;height:22px}.login-button{min-height:42px;padding:0 12px;font-size:12px}.admin-menu{width:min(270px,calc(100vw - 36px))}.workspace{padding:28px 18px 40px}.viewer-workspace{padding:28px 18px 42px}.viewer-hero{padding-bottom:28px}.viewer-title-row{align-items:stretch;flex-direction:column;gap:20px}.viewer-title-row h1{font-size:31px}.viewer-title-row p{font-size:14px;line-height:1.6}.viewer-count-card{width:100%}.viewer-list-section{overflow:visible;border:0;border-radius:0;box-shadow:none}.viewer-list-header{min-height:0;padding:18px 0;align-items:flex-start;flex-direction:column;gap:14px}.refresh-button{width:100%;justify-content:center}.list-heading{align-items:stretch;flex-direction:column;gap:14px}.list-toolbar{width:100%}.list-filter,.list-filter button{flex:1}.list-toolbar .refresh-button{width:44px;flex:none}.viewer-table-wrap{overflow:visible;padding:0}.viewer-table tr{margin:12px 0;padding:18px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 5px 16px #101b2c0b}.viewer-table td{height:auto;padding:5px 0;font-size:14px}.viewer-table td:before{width:82px}.viewer-table td:last-child{margin-top:0}.viewer-table td:last-child:before{display:inline-block}.viewer-vehicle strong{font-size:21px}.viewer-program{font-size:15px!important}.viewer-time{display:block;white-space:normal}.viewer-time svg{display:none}.viewer-empty{min-height:180px}.viewer-privacy{margin-top:10px;padding:14px 0;line-height:1.55}.date-heading h1{font-size:30px}.date-controls{display:grid;grid-template-columns:44px 1fr 1fr 1fr 44px}.date-controls>button{height:44px;padding:0 12px}.date-controls>.icon-button{width:44px}.date-picker-shell{grid-column:1 / -1;width:100%;min-width:0;height:44px;margin:4px 0 0}.date-picker-wrap{height:44px}.calendar-popover{width:min(100%,344px);padding:14px}.calendar-header{min-height:36px;grid-template-columns:36px 1fr 36px}.calendar-header .calendar-month-button{width:34px;height:34px}.calendar-weekdays,.calendar-grid{gap:2px}.calendar-weekdays{margin:10px 0 5px}.calendar-weekdays span{min-height:20px}.calendar-grid .calendar-day{width:34px;height:34px}.calendar-footer{margin-top:10px;padding-top:10px}.calendar-footer button{min-height:32px}.content-grid{margin-top:32px}.vehicle-input{height:78px;font-size:34px}.credential-grid{grid-template-columns:1fr}.credential-helper{grid-column:auto}.time-row{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}.time-row>span{display:none}.field-group label.time-select{height:54px}.table-wrap{overflow:visible}table,tbody,tr,td{display:block;width:100%}thead{display:none}tr{position:relative;padding:16px 0;border-bottom:1px solid var(--line-soft)}td{min-height:0;padding:3px 0;border:0}td:before{content:attr(data-label);display:inline-block;width:76px;color:#7a8596;font-size:12px}td:last-child{margin-top:12px}td:last-child:before{display:none}.row-actions{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.edit-button,.delete-row-button{justify-content:center}.empty-state{min-height:170px}.toast{right:16px;bottom:16px}.access-panel{padding:28px 22px}.delete-dialog{padding:28px 22px 22px}}.notification-settings{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:20px 24px;margin:0 0 24px;border:1px solid #d6e5e1;border-radius:16px;background:#f5faf8;text-align:left}.notification-heading{display:flex;flex:1 1 300px;align-items:center;gap:13px}.notification-icon{flex:0 0 auto;color:#12685f}.notification-settings h2{margin:0 0 5px;font-size:16px;color:#174a43}.notification-settings p{margin:0;font-size:13px;line-height:1.65;color:#536960}.notification-settings .notification-help,.notification-settings .field-error{flex-basis:100%;font-size:12px}.notification-settings .field-error{color:#b13d34}.notification-settings .secondary-button{min-height:42px;white-space:nowrap;font-size:13px}.applicant-notifications{margin:24px 0;padding:20px}.applicant-notifications .notification-heading{flex-basis:100%}@media(max-width:600px){.notification-settings{padding:18px}.notification-settings>button{width:100%;justify-content:center}}@media print{.notification-settings{display:none!important}}@media(prefers-reduced-motion:reduce){.date-controls>.date-nav-button,.date-nav-button svg{transition:none}.date-controls>.date-nav-button:hover,.date-controls>.date-nav-button:active,.date-nav-button.previous-button:hover svg,.date-nav-button.next-button:hover svg,.date-nav-button.previous-button:active svg,.date-nav-button.next-button:active svg{transform:none}.calendar-popover{animation:none}.calendar-header .calendar-month-button,.calendar-grid .calendar-day,.date-picker-wrap{transition:none}.calendar-header .calendar-month-button:active,.calendar-grid .calendar-day:hover{transform:none}}.site-surface{min-height:100vh;background:var(--page-background);color:var(--ink)}.site-surface .app-shell,.site-surface .pending-page,.site-surface .permit-page,.site-surface .access-shell{background:var(--page-background);color:var(--ink)}.site-surface .public-home,.site-surface .pending-card,.site-surface .access-panel,.site-surface .topbar,.site-surface .settings-card,.site-surface .vehicle-list-panel,.site-surface .registration-panel{background-color:var(--site-surface)}.site-surface .primary-button,.site-surface .public-actions .login-button:first-child{color:var(--button-foreground)}.site-surface .text-input,.site-surface .vehicle-input,.site-surface textarea:not(.copy-editor){background-color:var(--site-surface);color:var(--ink)}.site-copy{white-space:pre-line}.role-login-tabs{display:flex;gap:6px;padding:5px;margin:24px 0 18px;background:var(--navy-soft);border-radius:12px}.role-login-tabs button{flex:1;border:0;border-radius:8px;background:transparent;padding:12px 10px;color:var(--navy);font-weight:700}.role-login-tabs button.is-active{background:var(--navy);color:var(--button-foreground)}.decision-dialog textarea{display:block;width:100%;margin-top:10px;padding:14px;border:1px solid var(--line);border-radius:10px;font:inherit;resize:vertical}.decision-dialog>p{overflow-wrap:anywhere}.decision-reason{padding:18px 20px;margin:22px 0;border-radius:12px;background:#fff1ee;border:1px solid #f5c7bd;text-align:left}.decision-reason h2{margin:0 0 8px;font-size:15px;color:#973725}.decision-reason p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.decision-rejected .pending-icon,.decision-cancelled .pending-icon{color:#b34a36;background:#ffebe7}.status-badge.rejected{color:#aa3725;background:#fff0ec;border:1px solid #f0b3a6}.status-badge.cancelled{color:#59616e;background:#eef0f4;border:1px solid #d9dfe6}.row-decision-reason{display:block;max-width:28em;color:#a03d2d;margin-top:8px;white-space:pre-wrap;overflow-wrap:anywhere}.row-actions{flex-wrap:wrap;min-width:160px}.reject-row-button,.cancel-row-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:#fff;border:1px solid #e6c8c0;color:#a3442e;border-radius:7px;padding:7px 9px;white-space:nowrap;font:inherit;font-size:12px}.cancel-row-button{border-color:var(--line);color:#596579}.reject-row-button:hover,.cancel-row-button:hover{background:#fff4ef}.credential-warning{padding:14px 18px;background:#fff7e7;border:1px solid #f0d7a0;border-radius:10px;color:#775420}.access-code-settings select{max-width:400px;margin:9px 0 20px}.settings-shortcuts>.primary-button{width:auto;min-height:42px;padding:10px 16px;font-size:14px}.visual-site-editor{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#f3f6f8;margin:24px 0 32px}.visual-editor-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;background:#fff;border-bottom:1px solid var(--line)}.visual-editor-heading h2{margin:0 0 7px;font-size:22px;color:#17384d}.visual-editor-heading p{margin:0;font-size:13px;color:#647487;line-height:1.8}.visual-editor-heading>button{width:auto;flex-shrink:0;padding:12px 20px;min-height:46px;font-size:14px}.preview-page-tabs{display:flex;gap:6px;overflow-x:auto;padding:14px 18px;background:#fff;border-bottom:1px solid var(--line)}.preview-page-tabs button{flex-shrink:0;padding:9px 14px;border-radius:20px;background:#fff;border:1px solid var(--line);color:#536477;font:inherit;font-size:13px}.preview-page-tabs button.is-active{background:var(--navy);border-color:var(--navy);color:var(--button-foreground);font-weight:700}.visual-editor-layout{display:grid;grid-template-columns:210px minmax(0,1fr);align-items:start}.visual-editor-options{padding:18px;background:#fff;border-right:1px solid var(--line)}.visual-editor-options h3{font-size:14px;margin:12px 0 18px;color:#254659}.visual-editor-options label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;margin:18px 0;color:#536477}.visual-editor-options input[type=color]{padding:2px;width:42px;height:32px;background:#fff;border:1px solid var(--line);border-radius:7px}.visual-editor-options p{font-size:11px;color:#738092;line-height:1.9}.preview-device-buttons{display:flex;gap:6px}.preview-device-buttons button{border:1px solid var(--line);border-radius:7px;padding:8px;background:#fff;font-size:12px}.preview-device-buttons button[aria-pressed=true]{background:#edf6f9;border-color:#6697aa;color:#004e70}.visual-preview-scroll{overflow:auto;max-height:1100px;padding:22px}.visual-preview{width:100%;min-width:0;margin:0 auto;border:1px solid #cbd8df;border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #233d4f12}.visual-preview.is-mobile{width:390px;max-width:100%}.visual-preview.is-mobile .permit-header{gap:8px}.visual-preview.is-mobile .permit-header .home-logo{width:175px;padding:4px}.visual-preview.is-mobile .permit-month{display:grid;gap:3px}.visual-preview.is-mobile .permit-month span{font-size:10px}.visual-preview.is-mobile .permit-vehicle{font-size:44px;margin:20px 0}.visual-preview.is-mobile .permit-schedule-grid{grid-template-columns:1fr}.visual-preview.is-mobile .permit-schedules h2{align-items:start;flex-direction:column}.visual-preview.is-mobile .public-actions{width:100%;justify-content:flex-start}.visual-preview.is-mobile .public-actions .login-button{flex:1 0 40%}.visual-preview .site-surface,.visual-preview .app-shell{min-height:600px}.visual-preview .topbar{padding:14px 20px;flex-wrap:wrap;gap:12px}.visual-preview .public-actions{justify-content:flex-start}.visual-preview .public-actions .login-button{font-size:11px;padding:6px}.visual-preview .workspace{padding:24px 20px}.visual-preview .content-grid,.visual-preview .self-registration .content-grid{grid-template-columns:1fr}.visual-preview .public-home{margin:28px 20px;padding:28px 22px}.visual-preview .privacy-badge{font-size:11px;max-width:220px}.visual-preview .brand-logo{max-width:220px}.visual-preview .admin-tabs{flex-wrap:wrap}.visual-preview .permit-page{padding:20px 14px}.visual-preview .parking-permit{padding:24px 18px}.visual-preview .permit-header .home-logo{width:190px}.visual-preview .permit-month strong{font-size:42px}.visual-preview .permit-vehicle{font-size:clamp(40px,6vw,72px)}.visual-preview .permit-footer,.visual-preview .permit-footer p:last-child{font-size:12px}.visual-preview .permit-time{font-size:42px}.visual-preview .permit-lookup,.visual-preview .access-panel{max-width:calc(100% - 24px)}.visual-preview .sr-only:has(.copy-editor){position:static;width:auto;height:auto;clip:auto;margin:0 0 18px;overflow:visible;white-space:normal}.copy-editor{display:inline-block;box-sizing:border-box;width:100%;min-width:40px;min-height:1.8em;margin:0;padding:4px 6px;border:1px dashed #69a9a0;border-radius:5px;background:#ffffffa6;color:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;vertical-align:middle;resize:vertical;overflow-wrap:anywhere}.copy-editor:focus{outline:2px solid #12685f;outline-offset:1px;border-style:solid;background:#fff}.visual-preview button:has(.copy-editor){height:auto;white-space:normal}.visual-preview button .copy-editor{background:transparent}.visual-editor-status{padding:16px 22px;font-size:13px;line-height:1.8;background:#edf7f2;color:#2d6a52;border-top:1px solid #d2e5db}@media(max-width:820px){.visual-editor-layout{grid-template-columns:1fr}.visual-editor-options{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;border-right:0;border-bottom:1px solid var(--line)}.visual-editor-options h3{flex-basis:100%;margin:0}.visual-editor-options label{gap:10px;margin:0}.visual-editor-options p{display:none}.visual-preview-scroll{padding:10px}.visual-editor-heading{padding:18px;flex-wrap:wrap}.visual-editor-heading h2{font-size:19px}.visual-editor-heading>button{width:100%}.visual-preview .permit-header{gap:8px}.visual-preview .permit-month,.visual-preview .permit-month span{display:block}.public-actions .login-button{flex:1 0 40%}}@media print{.site-surface{min-height:0!important;background:#fff!important}.visual-site-editor,.access-code-settings,.decision-dialog{display:none!important}}
