/* Shared tokens for login, account administration and service navigation. */
:root{--canvas:#fff;--surface:#f4f5f5;--login-panel:#e8e7e5;--ink:#202831;--muted:#5c6774;--accent:#174b58;--accent-hover:#103b46;--accent-soft:#e7eff0;--line:#cdd3d9;--line-soft:#e2e6e9;--danger:#9d2433;--success:#245343;--radius:7px;--space:8px;--focus:#176e85;color-scheme:light;font-family:'Inter Tight',system-ui,sans-serif;color:var(--ink);background:var(--canvas);font-size:16px;line-height:1.5}
*{box-sizing:border-box}body{margin:0}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.15;text-wrap:balance}h1{font-size:36px;letter-spacing:-.025em;font-weight:700}h2{font-size:23px;letter-spacing:-.015em}p{max-width:70ch}a{color:var(--accent);text-underline-offset:4px}a:hover{color:var(--accent-hover)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}input,select{min-width:0;max-width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--canvas);color:var(--ink);padding:11px 14px;min-height:46px;caret-color:var(--accent)}input::placeholder{color:var(--muted)}input:hover,select:hover{border-color:#8c99a5}input[type=checkbox]{min-height:20px;width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}input:focus-visible,button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}::selection{background:#c8e1e7;color:var(--ink)}button:disabled{opacity:.65;cursor:wait}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:var(--radius);border:1px solid transparent;font-weight:600;text-decoration:none;line-height:1.4;transition:background-color 160ms ease,color 160ms ease}.primary{background:var(--accent);color:#fff}.primary:hover{background:var(--accent-hover);color:#fff}.secondary{background:#fff;color:var(--accent);border-color:var(--line)}.secondary:hover{background:var(--accent-soft)}.quiet{background:transparent;color:var(--muted)}.quiet:hover{background:var(--surface);color:var(--ink)}.field{display:flex;flex-direction:column;gap:8px}.field label,legend{font-weight:600}.field-help{font-size:14px;color:var(--muted)}.password-field{display:flex;position:relative}.password-field input{width:100%;padding-right:98px}.password-toggle{position:absolute;right:1px;top:1px;bottom:1px;border:0;border-left:1px solid var(--line-soft);border-radius:0 var(--radius) var(--radius) 0;background:transparent;padding:0 15px;color:var(--muted);font-size:14px;min-width:80px}.password-toggle:hover{background:var(--surface);color:var(--ink)}.password-toggle[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.field-error{font-size:14px;color:var(--danger)}.field-error:empty{display:none}.validation-summary-valid{display:none}.validation-summary-errors{padding:16px;background:#fcf0f1;color:var(--danger);border:1px solid #e4bfc5;border-radius:var(--radius);font-size:16px}.validation-summary ul{padding-left:20px;margin:0}.notice{padding:16px 20px;margin-bottom:24px;border-radius:var(--radius);border:1px solid var(--line)}.success{background:#eef5f0;color:var(--success)}.input-validation-error{border-color:var(--danger)}
/* Approved login A: open form at left, service panel at right. */
.login-screen{display:grid;grid-template-columns:53.5% 46.5%;min-height:100svh}.login-left{padding:clamp(32px,8.3vh,88px) 5.75vw 64px}.login-left#main-content{margin:0;max-width:none;width:100%}.login-brand{font-size:clamp(30px,3.5vw,53px);line-height:1.2;font-weight:700;letter-spacing:-.035em;text-decoration:none}.login-content{margin-top:clamp(70px,10.95vh,115px);max-width:650px}.login-content h1{font-size:clamp(36px,4.7vw,71px);line-height:1.12;letter-spacing:-.025em;text-wrap:nowrap}.login-subtitle{color:var(--muted);font-size:clamp(20px,2.45vw,37px);margin-top:12px;line-height:1.25}.login-form{margin-top:clamp(32px,5.1vh,54px);display:grid;gap:30px}.login-form label{font-size:clamp(16px,1.45vw,22px);color:#4b5764}.login-form input{min-height:66px;font-size:22px}.login-form .password-toggle{font-size:20px;min-width:112px}.login-form .password-field input{padding-right:125px}.login-submit{margin-top:12px;min-height:76px;font-size:28px;font-weight:600}.login-help{font-size:clamp(16px,1.45vw,22px);color:var(--muted);margin-top:24px;white-space:nowrap;letter-spacing:-.01em}.login-services{background:var(--login-panel);padding:7vw 6.6vw;display:flex;align-items:center}.login-services h2{font-size:clamp(32px,4.35vw,66px);line-height:1.16;letter-spacing:-.035em;white-space:nowrap}.login-services ul{padding:0;margin:58px 0 0;list-style:none;display:grid;gap:14px;font-size:clamp(24px,2.7vw,41px);line-height:1.4}.login-services>div{transform:translateY(8px)}
/* Authenticated application. */
.app-header{min-height:80px;display:flex;align-items:center;gap:40px;padding:0 32px;border-bottom:1px solid var(--line-soft);background:var(--canvas)}.brand{font-size:25px;font-weight:700;letter-spacing:-.035em;white-space:nowrap;text-decoration:none}.service-tabs{display:flex;gap:8px;align-self:stretch;align-items:center;flex-wrap:wrap}.service-tabs a{padding:12px 16px;min-height:44px;display:flex;align-items:center;text-decoration:none;font-weight:600;color:var(--muted);border-radius:var(--radius)}.service-tabs a:hover{background:var(--surface)}.service-tabs a.active{background:var(--accent-soft);color:var(--accent)}.account-area{margin-left:auto;display:flex;align-items:center;gap:16px}.account-area form{margin:0}.app-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:calc(100svh - 80px)}.sidebar{background:var(--surface);border-right:1px solid var(--line-soft);padding:28px 16px}.side-nav{display:flex;flex-direction:column;gap:4px}.nav-heading{font-size:16px;font-weight:700;padding:8px 14px 16px}.side-nav a{display:block;padding:12px 14px;border-radius:var(--radius);color:var(--muted);text-decoration:none;min-height:46px}.side-nav a:hover{background:#e8ebed;color:var(--ink)}.side-nav a.active,.side-nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-common{border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.side-nav>.nav-common:first-child{border:0;margin:0;padding:0}.workspace{min-width:0;padding:48px clamp(24px,4vw,64px)}#main-content{max-width:1200px;margin:0 auto;outline-offset:8px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:36px}.page-heading p{color:var(--muted);margin-top:10px}.page-heading .button{flex-shrink:0}.intro{color:var(--muted);margin-bottom:28px}.service-list{border-top:1px solid var(--line-soft)}.service-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 8px;border-bottom:1px solid var(--line-soft);text-decoration:none;color:var(--ink);transition:background-color 160ms ease}.service-row:hover{background:var(--surface)}.service-row strong{font-size:24px;font-weight:600}.service-row>span>span{display:block;font-size:15px;color:var(--muted);margin-top:8px}.row-action{display:flex;align-items:center;gap:12px;color:var(--accent);font-size:15px;flex-shrink:0}.admin-entry{margin-top:56px}.admin-entry p{color:var(--muted);margin:12px 0 20px}.editor-form{max-width:660px;display:grid;gap:26px}.editor-form fieldset{margin:0;padding:20px 0 0;border:0;border-top:1px solid var(--line-soft)}.editor-form legend{padding:0}.check-label{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;font-weight:400}.module-options .field-help{margin-bottom:12px}.form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px}.secondary-section{border-top:1px solid var(--line-soft);margin-top:48px;padding-top:32px;max-width:660px}.secondary-section p{color:var(--muted);margin:12px 0 20px}.back-link{display:inline-block;font-size:14px;margin-bottom:20px;min-height:28px}.search-form{max-width:680px;margin-bottom:24px}.search-form label{display:block;font-weight:600;margin-bottom:8px}.search-form>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.search-form input{flex:1;min-width:180px}.result-count{color:var(--muted);font-size:14px;margin-bottom:12px}.table-help{display:none}.table-scroll{position:relative;overflow:auto;border-top:1px solid var(--line-soft);scrollbar-color:#9ca8b2 var(--surface)}table{width:100%;border-collapse:collapse;text-align:left;font-size:15px}th{font-size:13px;color:var(--muted);font-weight:600;background:var(--surface);padding:14px 16px;white-space:nowrap}td{padding:20px 16px;border-bottom:1px solid var(--line-soft);vertical-align:middle}td:first-child{min-width:170px}td:nth-child(3){min-width:165px}td:last-child{white-space:nowrap}.cell-secondary{display:block;color:var(--muted);font-size:13px;margin-top:5px}.status{display:inline-block;font-size:13px;font-weight:600;padding:4px 10px;border-radius:20px}.enabled{background:#eaf2ed;color:var(--success)}.disabled{background:#edeff1;color:#4f5862}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:24px;font-size:14px;font-variant-numeric:tabular-nums}.empty-state{padding:48px 0;max-width:680px}.empty-state p{color:var(--muted);margin:16px 0 24px}.error-page{padding:64px 24px;max-width:760px;margin:auto}.error-page p{margin:20px 0 28px;color:var(--muted)}.sr-only{position:absolute;left:0;top:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;top:-100px;left:20px;z-index:10;background:var(--canvas);padding:12px 16px}.skip-link:focus{top:8px}.service-switch,.menu-open{display:none}dialog{padding:24px;border:0;border-radius:0 12px 12px 0;max-height:100svh;min-height:100svh;width:min(340px,90vw);max-width:90vw;margin:0;background:var(--surface);color:var(--ink)}dialog::backdrop{background:rgb(20 30 35 / .4)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}dialog[open]{animation:menu-in 180ms cubic-bezier(.16,1,.3,1)}@keyframes menu-in{from{translate:-12px 0;opacity:.9}to{translate:0 0;opacity:1}}
@media(max-width:1100px){.app-header{gap:20px;padding:0 24px}.service-tabs a{padding:12px}.login-left{padding-left:5vw;padding-right:5vw}.login-help{white-space:normal}.login-form{gap:24px}.login-form input{min-height:56px}.login-submit{min-height:62px;font-size:23px}.login-services{padding:5vw}.login-services ul{margin-top:38px}}
@media(max-width:960px){.table-help{display:block;font-size:14px;color:var(--muted);margin-bottom:12px}.table-scroll td:last-child,.table-scroll th:last-child{position:sticky;right:0;z-index:1;border-left:1px solid var(--line)}.table-scroll td:last-child{background:var(--canvas)}.table-scroll td:last-child a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}.app-header{flex-wrap:wrap;gap:12px;min-height:80px;padding:16px 20px}.brand{font-size:23px}.service-tabs{display:none}.service-switch{display:block;position:relative;order:3;flex-basis:100%;font-size:15px}.service-switch summary{padding:10px 12px;background:var(--surface);border-radius:var(--radius);cursor:pointer;font-weight:600;color:var(--accent)}.service-switch nav{position:absolute;z-index:5;top:100%;left:0;right:0;background:var(--canvas);border:1px solid var(--line);border-radius:var(--radius);padding:8px;box-shadow:0 12px 28px rgb(25 40 50 / .12)}.service-switch nav a{display:block;padding:12px;text-decoration:none}.service-switch nav a:hover{background:var(--surface)}.account-area{gap:8px}.app-shell{display:block;min-height:calc(100svh - 130px)}.enhanced .sidebar{display:none}.sidebar{border-right:0}.enhanced .menu-open{display:inline-flex;margin-bottom:24px;background:var(--surface);border-color:var(--line-soft)}.workspace{padding:24px}.page-heading{margin-bottom:28px}.login-screen{grid-template-columns:1fr}.login-left{padding:32px max(24px,calc((100vw - 520px)/2)) 48px;min-height:auto}.login-brand{font-size:32px}.login-content{margin-top:64px;max-width:none}.login-content h1{font-size:44px;text-wrap:balance}.login-subtitle{font-size:25px}.login-form{margin-top:36px;gap:24px}.login-form label{font-size:17px}.login-form input{font-size:18px;min-height:56px}.login-form .password-toggle{font-size:16px;min-width:90px}.login-submit{font-size:22px;min-height:58px;margin-top:8px}.login-help{font-size:16px;margin-top:20px}.login-services{padding:48px max(24px,calc((100vw - 520px)/2));display:block}.login-services>div{transform:none}.login-services h2{font-size:36px;white-space:normal}.login-services ul{font-size:25px;gap:8px;margin-top:28px}}
@media(max-width:540px){h1{font-size:30px}.workspace{padding:20px}.page-heading{flex-direction:column;gap:20px}.page-heading .button{width:100%}.service-row{gap:12px;padding:24px 0}.service-row strong{font-size:22px}.service-row>span>span{font-size:14px}.row-action{font-size:14px;gap:6px}.app-header{padding:14px 20px}.login-content h1{font-size:36px}.login-subtitle{font-size:22px}.login-content{margin-top:52px}.login-services h2{font-size:32px}.login-help{max-width:29ch}.pagination{flex-wrap:wrap;justify-content:flex-start}.form-actions .primary{width:100%}.table-scroll{margin:0 -4px}td,th{padding:16px 12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Account actions and verified commune context stay together in the header. */
.app-header{position:relative;z-index:6}.account-area{min-width:0;gap:12px}.header-dropdown{position:relative;min-width:0}.header-dropdown summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:8px 12px;border-radius:var(--radius);cursor:pointer;list-style:none;color:var(--accent);font-size:14px;font-weight:600}.header-dropdown summary::-webkit-details-marker{display:none}.header-dropdown summary:hover,.header-dropdown[open]>summary{background:var(--accent-soft)}.header-dropdown summary svg{flex:none;width:18px;height:18px}.header-dropdown[open]>summary svg{transform:rotate(180deg)}.account-label{min-width:0;max-width:190px;overflow-wrap:anywhere;text-align:left}.tenant-switch .account-label{max-width:230px}.header-hint{display:block;font-size:12px;font-weight:400;color:var(--muted)}.header-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:10;width:min(320px,calc(100vw - 40px));max-height:70svh;overflow:auto;padding:8px;background:var(--canvas);border-radius:var(--radius);box-shadow:0 12px 28px rgb(25 40 50 / .16);scrollbar-color:#9ca8b2 var(--surface)}.panel-title{display:block;padding:12px;font-size:15px}.header-panel a,.header-panel button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;padding:12px;border:0;border-radius:var(--radius);text-align:left;text-decoration:none;background:transparent;color:var(--ink);font-size:15px;overflow-wrap:anywhere}.header-panel a:hover,.header-panel button:hover,.header-panel a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.header-panel .context-option:disabled{opacity:1;cursor:default;background:var(--surface);color:var(--muted)}.context-option .header-hint{flex:none}.header-panel .account-logout{border-top:1px solid var(--line-soft);margin-top:8px;padding-top:8px}.panel-help{padding:12px;font-size:13px}.header-panel :focus-visible{outline-offset:-3px}
@media(max-width:960px){.app-header:has(.tenant-switch)>.brand{flex-basis:100%}.app-header:has(.tenant-switch)>.account-area{width:100%;justify-content:flex-end}.tenant-switch{flex:1}.account-dropdown{max-width:50%}.account-area:not(:has(.tenant-switch)) .account-dropdown{max-width:100%}.tenant-switch .header-panel{left:0;right:auto}.account-label,.tenant-switch .account-label{max-width:none}.header-dropdown summary{padding:8px;gap:6px}.account-area{max-width:100%}}
