:root{--color-canvas:#fafafa;--color-surface:#ffffff;--color-soft:#f5f5f5;--color-ink:#171717;--color-body:#4d4d4d;--color-muted:#666666;--color-border:#e5e5e5;--color-control:#858585;--color-primary:#171717;--color-primary-hover:#303030;--color-on-primary:#ffffff;--color-accent-soft:#f5f5f5;--color-nav:#ffffff;--color-nav-ink:#171717;--color-nav-muted:#666666;--color-nav-active:#f5f5f5;--color-error:#b42323;--color-error-surface:#fff1f1;--color-warning:#855500;--color-warning-surface:#fff7e0;--color-success:#087348;--color-success-surface:#effaf4;--color-focus:#171717;--color-overlay:#00000080;--space-0:0;--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;--space-20:80px;--size-sidebar:240px;--size-header:64px;--size-control:44px;--size-icon:18px;--size-icon-small:16px;--size-logo:28px;--size-content:1200px;--size-form:680px;--size-login:380px;--size-login-art:560px;--size-table:780px;--size-empty:300px;--size-navigation:48px;--size-avatar:32px;--size-search:340px;--size-metric:96px;--size-login-top:80px;--size-brand-width:132px;--size-dialog:480px;--size-toast:360px;--font-body:"Geist","Pretendard",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"Geist Mono",ui-monospace,SFMono-Regular,monospace;--font-small:13px;--font-body-size:14px;--font-medium:16px;--font-title:28px;--font-display:32px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-strong:600;--font-line:1.6;--font-line-heading:1.3;--font-tiny:12px;--font-brand:22px;--font-metric:24px;--font-tracking:-0.03em;--radius-small:4px;--radius-medium:6px;--radius-large:8px;--radius-full:9999px;--shadow-panel:0 2px 8px #00000006;--shadow-overlay:0 8px 32px #0000001f;--border-width:1px;--border-focus:2px;--breakpoint-mobile:640px;--breakpoint-tablet:960px}:root[data-theme=dark]{--color-canvas:#000000;--color-surface:#0a0a0a;--color-soft:#171717;--color-ink:#ededed;--color-body:#bdbdbd;--color-muted:#a3a3a3;--color-border:#2e2e2e;--color-control:#737373;--color-primary:#ededed;--color-primary-hover:#ffffff;--color-on-primary:#0a0a0a;--color-accent-soft:#171717;--color-nav:#0a0a0a;--color-nav-ink:#ededed;--color-nav-muted:#a3a3a3;--color-nav-active:#171717;--color-error:#ff9999;--color-error-surface:#301515;--color-warning:#f7cb72;--color-warning-surface:#2b220f;--color-success:#75dda3;--color-success-surface:#10251a;--color-focus:#ededed;--shadow-panel:none;--shadow-overlay:0 8px 32px #00000080}@font-face{font-family:Geist;src:url(/fonts/GeistVariable.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMonoVariable.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Pretendard;src:url(/fonts/PretendardVariable.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}body{margin:0;color:var(--color-ink);background:var(--color-canvas);font-family:var(--font-body);font-size:var(--font-body-size);line-height:var(--font-line);word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:var(--border-focus) solid var(--color-focus);outline-offset:var(--space-1)}svg{flex-shrink:0;width:var(--size-icon);height:var(--size-icon);stroke-width:1.6}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:var(--font-line-heading);text-wrap:balance}p{text-wrap:pretty}h1{font-size:var(--font-title);letter-spacing:var(--font-tracking)}h1,h2{font-weight:var(--font-weight-strong)}h2{font-size:var(--font-medium)}h3{font-size:var(--font-body-size);font-weight:var(--font-weight-strong)}.field-hint,.muted{color:var(--color-muted)}.mono{font-family:var(--font-mono);font-size:var(--font-small)}.numeric{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.feedback-dialog:has(.sidebar-content) .dialog-heading h2,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:var(--space-3);left:var(--space-3);padding:var(--space-3);background:var(--color-surface);color:var(--color-ink);z-index:10;transform:translateY(-200%)}.skip-link:focus{transform:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--size-control);padding:var(--space-2) var(--space-4);border:var(--border-width) solid transparent;border-radius:var(--radius-medium);font-weight:var(--font-weight-medium);font-size:var(--font-body-size);white-space:normal}.primary{background:var(--color-primary);color:var(--color-on-primary)}.primary:hover:not(:disabled){background:var(--color-primary-hover)}.secondary{border-color:var(--color-control);background:var(--color-surface);color:var(--color-ink)}.secondary:hover:not(:disabled){background:var(--color-soft)}.full{width:100%}.text-button{color:inherit;text-decoration:underline;text-underline-offset:var(--space-1);padding:var(--space-2);min-height:var(--size-control)}.icon-button,.text-button{background:transparent;border:0}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--size-control);height:var(--size-control);flex-shrink:0;border-radius:var(--radius-medium);color:var(--color-muted)}.icon-button:hover:not(:disabled){background:var(--color-soft);color:var(--color-ink)}.brand-logo,.brand-symbol{display:block;flex-shrink:0;color:var(--color-ink)}.brand-logo{width:var(--size-brand-width);height:auto}.brand-symbol{width:var(--size-logo);height:var(--size-logo)}.header-actions{display:flex;align-items:center;gap:var(--space-3);min-width:0;gap:var(--space-2)}.header-caption{color:var(--color-muted);font-size:var(--font-small)}.header-separator{color:var(--color-control);font-weight:var(--font-weight-normal);font-size:var(--font-brand)}.workspace-name{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-medium)}.workspace-icon{display:grid;place-items:center;border-radius:var(--radius-medium);border:var(--border-width) solid var(--color-border)}.avatar,.workspace-icon{width:var(--size-avatar);height:var(--size-avatar);background:var(--color-soft)}.avatar{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;border-radius:var(--radius-full);border:var(--border-width) solid var(--color-border);color:var(--color-ink);font-size:var(--font-small);font-weight:var(--font-weight-medium)}.login-layout{min-height:100dvh;display:flex;flex-direction:column;background:var(--color-surface)}.login-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--size-header);padding:var(--space-3) var(--space-6);border-bottom:var(--border-width) solid var(--color-border)}.login-form-side{flex:1 1;display:grid;place-items:center;padding:var(--size-login-top) var(--space-6)}.login-form{width:100%;max-width:var(--size-login)}.login-form h1{margin-bottom:var(--space-8)}.login-form form{display:grid;gap:var(--space-5)}.login-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-8);border-top:var(--border-width) solid var(--color-border);color:var(--color-muted);font-size:var(--font-small)}.startup{display:grid;place-content:center;gap:var(--space-5);min-height:100dvh}.startup p{color:var(--color-muted)}.app-layout{display:flex;flex-direction:column;min-height:100dvh}.app-shell{flex:1 1;display:grid;grid-template-columns:var(--size-sidebar) minmax(0,1fr)}.app-sidebar{position:sticky;top:0;height:100dvh;overflow:auto;background:var(--color-nav);border-right:var(--border-width) solid var(--color-border)}.sidebar-content{display:flex;flex-direction:column;gap:var(--space-6);height:100%;min-height:0;padding:var(--space-5) var(--space-4)}.sidebar-brand{display:flex;align-items:center;min-height:var(--size-control);flex-shrink:0;padding-inline:var(--space-3)}.sidebar-account{position:relative;margin-top:auto;padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border);flex-shrink:0}.account-info{display:grid;grid-template-columns:var(--size-avatar) minmax(0,1fr) var(--size-control);align-items:center;gap:var(--space-2);min-height:var(--size-header);padding-inline:var(--space-1);color:var(--color-ink)}.account-logout{color:var(--color-muted)}.account-summary{display:grid;gap:var(--space-1);min-width:0}.account-summary strong,.account-summary>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-summary strong{font-size:var(--font-body-size);font-weight:var(--font-weight-medium)}.account-summary>span{font-size:var(--font-small);color:var(--color-muted)}.sidebar-nav{flex:1 1;min-height:0;overflow-y:auto;padding:var(--space-2);margin:calc(var(--space-2) * -1);display:flex;flex-direction:column;gap:var(--space-4)}.sidebar-nav button{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--size-control);padding:var(--space-3);border:0;border-radius:var(--radius-medium);background:transparent;color:var(--color-nav-muted);text-align:left;font-size:var(--font-body-size)}.sidebar-nav button:hover,.sidebar-nav button[aria-current=page]{background:var(--color-soft);color:var(--color-nav-ink)}.sidebar-nav button[aria-current=page]{font-weight:var(--font-weight-medium)}.nav-group-heading{margin:0}.nav-group{flex-shrink:0}.sidebar-nav .nav-group-toggle{justify-content:space-between;padding:var(--space-2) var(--space-3);color:var(--color-nav-muted);font-weight:var(--font-weight-medium)}.sidebar-nav .nav-group-toggle[data-active]{color:var(--color-nav-ink)}.nav-group-toggle svg{width:var(--size-icon-small);height:var(--size-icon-small)}.nav-group-toggle[aria-expanded=false] svg{transform:rotate(-90deg)}.nav-group-items{display:grid;gap:var(--space-1);margin-left:var(--space-3);padding-left:var(--space-2);border-left:var(--border-width) solid var(--color-border)}.nav-group-items[hidden]{display:none}.sidebar-nav .nav-group-items button{padding:var(--space-2) var(--space-3);font-size:var(--font-small)}.sidebar-toggle{display:none}.feedback-dialog:has(.sidebar-content){inset:0 auto 0 0;width:min(var(--size-sidebar),100%);height:100dvh;max-height:100dvh;margin:0;border-radius:0}.feedback-dialog:has(.sidebar-content) .dialog-content{height:100%;padding:0}.feedback-dialog:has(.sidebar-content) .dialog-heading{position:absolute;top:var(--space-5);right:var(--space-4)}.feedback-dialog:has(.sidebar-content) .dialog-heading .icon-button{margin:0}.workspace{display:flex;flex:1 1;flex-direction:column;min-width:0;width:100%}.main-content,.topbar,.workspace-footer{width:100%}.topbar{display:none;padding:var(--space-6) var(--space-6) 0;color:var(--color-muted);font-size:var(--font-small)}.heading-title,.topbar{align-items:center;gap:var(--space-3)}.heading-title{display:flex;flex-wrap:wrap}.page-count{justify-content:center;min-width:var(--space-6);padding:var(--space-1) var(--space-2);border-radius:var(--radius-medium);background:var(--color-soft);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-small)}.deployment-status,.page-count{display:inline-flex;align-items:center}.deployment-status{gap:var(--space-2);min-height:var(--size-control);font-size:var(--font-tiny)}.deployment-status svg{width:var(--size-icon-small);height:var(--size-icon-small)}.main-content{flex:1 1;padding:var(--space-6) var(--space-6) var(--space-8);min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-6)}.page-heading>div{min-width:0}.page-heading p{color:var(--color-muted);margin-top:var(--space-3)}.page-heading>.button{flex-shrink:0}.back-button{display:inline-flex;align-items:center;gap:var(--space-2);background:transparent;border:0;color:var(--color-muted);padding:var(--space-2) 0;min-height:var(--size-control);margin-bottom:var(--space-2)}.list-panel{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-large);overflow:hidden}.list-toolbar{align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-5);border-bottom:var(--border-width) solid var(--color-border)}.filters,.list-toolbar{display:flex;gap:var(--space-4)}.filters{flex-wrap:wrap}.filters button{min-height:var(--size-control);padding:var(--space-2) 0;border:0;border-bottom:var(--border-focus) solid transparent;background:transparent;color:var(--color-muted)}.filters button:hover{background:var(--color-soft);color:var(--color-ink)}.filters button[aria-pressed=true],.filters button[aria-selected=true]{border-bottom-color:var(--color-ink);color:var(--color-ink);font-weight:var(--font-weight-medium)}.filters:not(.team-tabs){gap:var(--space-1)}.filters:not(.team-tabs) button{padding-inline:var(--space-3);border:var(--border-width) solid transparent;border-radius:var(--radius-medium)}.filters:not(.team-tabs) button[aria-pressed=true]{background:var(--color-soft);border-color:var(--color-border)}.team-tabs{margin-bottom:var(--space-5);border-bottom:var(--border-width) solid var(--color-border)}.search{display:flex;align-items:center;gap:var(--space-2);width:var(--size-search);max-width:100%;min-height:var(--size-control);padding-inline:var(--space-3);background:var(--color-surface);color:var(--color-muted);border:var(--border-width) solid var(--color-control);border-radius:var(--radius-medium)}.search svg{width:var(--size-icon-small);height:var(--size-icon-small)}.search input{width:100%;min-width:0;min-height:var(--size-control);background:transparent;border:0;color:var(--color-ink);font-size:var(--font-body-size)}.field input::placeholder,.search input::placeholder{color:var(--color-muted)}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-body-size)}.table-container{width:100%;overflow-x:auto}.data-table th.table-actions-head{text-align:right}.button.ghost{color:var(--color-body);background:transparent;border-color:transparent}.button.ghost:hover:not(:disabled){color:var(--color-ink);background:var(--color-soft)}.project-table td[data-label="등록일"],.project-table th{white-space:nowrap}.data-table th{height:var(--size-control);background:var(--color-surface);color:var(--color-muted);font-weight:var(--font-weight-medium);text-align:left;font-size:var(--font-small)}.data-table td,.data-table th{padding:var(--space-2) var(--space-5);border-bottom:var(--border-width) solid var(--color-border)}.data-table td{height:var(--space-16);vertical-align:middle;overflow-wrap:anywhere}.data-table td strong{font-weight:var(--font-weight-medium)}.data-table td.numeric,.data-table th.numeric{text-align:right}.data-table time{white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.project-table td:first-child{width:34%}.developer-table td:first-child,.server-table td:first-child{width:26%}.server-table td:nth-child(2),.server-table th:nth-child(2){white-space:nowrap}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--color-canvas)}.project-link{display:inline-flex;width:100%;justify-content:space-between;align-items:center;gap:var(--space-3);text-align:left;border:0;background:transparent;color:var(--color-ink);padding:0;min-height:var(--size-control)}.project-link>span{min-width:0;display:grid;gap:var(--space-1)}.project-link>svg{color:var(--color-muted)}.project-link:hover strong{text-decoration:underline;text-underline-offset:var(--space-1)}.badge{display:inline-flex;align-items:center;color:var(--color-body);background:var(--color-soft);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-full);padding:var(--space-1) var(--space-2);font-size:var(--font-small);font-weight:var(--font-weight-medium);white-space:nowrap}.badge-success{color:var(--color-success);background:var(--color-success-surface)}.badge-warning{color:var(--color-warning);background:var(--color-warning-surface)}.badge-error{color:var(--color-error);background:var(--color-error-surface)}.badge.production{color:var(--color-ink)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-6);text-align:center}.empty-icon{display:grid;place-items:center;width:var(--size-control);height:var(--size-control);color:var(--color-muted);margin-bottom:var(--space-3)}.empty-icon svg{width:var(--space-6);height:var(--space-6)}.empty-state p{color:var(--color-muted);margin-top:var(--space-3)}.empty-state .button{margin-top:var(--space-6)}.workspace-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-8);color:var(--color-muted);font-size:var(--font-small)}.form-panel{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-large);padding:var(--space-6)}.form-panel form{display:grid;gap:var(--space-5)}.section-heading{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.section-heading>svg{color:var(--color-muted);width:var(--size-icon);height:var(--size-icon)}.section-heading .count{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-small)}.subheading{margin-top:var(--space-6);padding-top:var(--space-6);border-top:var(--border-width) solid var(--color-border)}.field{display:grid;align-content:start;gap:var(--space-2);font-weight:var(--font-weight-medium);min-width:0}.field>span{display:flex;align-items:center;gap:var(--space-2)}.field input,.field select,.field textarea,.ui-input{color:var(--color-ink);background:var(--color-surface);border:var(--border-width) solid var(--color-control);border-radius:var(--radius-medium);padding:var(--space-2) var(--space-3);width:100%;min-height:var(--size-control)}.field textarea{resize:vertical}.field select{text-overflow:ellipsis}.field-error{color:var(--color-error);font-weight:var(--font-weight-normal)}.password-input{position:relative;min-width:0}.password-input .ui-input{padding-right:calc(var(--size-control) + var(--space-2))}.password-reveal{position:absolute;top:0;right:0}.password-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-1) var(--space-3);padding:0;margin:0;list-style:none;color:var(--color-muted);font-size:var(--font-small);font-weight:var(--font-weight-normal)}.password-rules li{display:flex;align-items:center;gap:var(--space-1)}.password-match,.password-rules li[data-met=true]{color:var(--color-success)}.password-rules svg{width:var(--size-icon-small);height:var(--size-icon-small);flex-shrink:0}.password-match{font-size:var(--font-small);font-weight:var(--font-weight-normal)}.form-error-summary:empty{display:none}.form-error-summary a{display:block;color:inherit;text-decoration:underline;padding-block:var(--space-2)}.signup-result{margin-top:var(--space-6)}.registration-loading{padding:var(--space-4) var(--space-5);color:var(--color-muted)}.registration-table td{overflow-wrap:anywhere}.registration-table td:first-child{width:40%}.registration-table td[data-label="신청일"]{white-space:nowrap}.registration-table td[data-label="처리"]{text-align:right}.registration-table .approval-actions{justify-content:flex-end}.registration-table th{white-space:nowrap}.registration-person{display:grid;gap:var(--space-1);min-width:0}.registration-person time,.registration-table time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.approval-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.approval-actions .delete-action{color:var(--color-error)}.approval-actions .delete-action:hover:not(:disabled){background:var(--color-error-surface)}.review-form{display:grid;gap:var(--space-4);margin-top:var(--space-4)}.review-form .alert{margin-bottom:0}.review-form .dialog-actions{margin-top:var(--space-2)}.field-hint,.optional{font-size:var(--font-small);font-weight:var(--font-weight-normal);color:var(--color-muted)}.form-grid{display:grid;align-items:start;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-5);border-top:var(--border-width) solid var(--color-border)}.project-summary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);padding-bottom:var(--space-6);margin-bottom:var(--space-6);border-bottom:var(--border-width) solid var(--color-border)}.project-summary p{flex:1 1;min-width:0}.project-summary .mono{width:100%;color:var(--color-muted)}.data-section{margin-bottom:var(--space-8)}.environment-list{display:grid;gap:var(--space-4)}.environment-panel{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-large);padding:var(--space-6)}.environment-title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5);margin:var(--space-5) 0 0}.details dt{color:var(--color-muted);font-size:var(--font-small)}.details dd{margin:var(--space-1) 0 0}.details dd span{display:block}.member-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-6)}.member-list li{display:flex;align-items:center;gap:var(--space-3)}.member-list li>span:last-child{display:grid}.assignment{display:flex;align-items:flex-end;gap:var(--space-3);margin-top:var(--space-5)}.assignment .field{flex:1 1;max-width:var(--size-login)}.loading-panel{display:grid;gap:var(--space-5);padding:var(--space-6);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-large)}.skeleton{background:var(--color-soft);height:var(--space-8);width:100%;border-radius:var(--radius-small)}@media (max-width:960px){.login-header,.main-content,.topbar,.workspace-footer{padding-inline:var(--space-5)}}@media (max-width:768px){.app-shell{grid-template-columns:minmax(0,1fr)}.app-sidebar{display:none}.sidebar-toggle{display:inline-flex}.topbar{display:flex;padding-block:var(--space-3);border-bottom:var(--border-width) solid var(--color-border);background:var(--color-surface)}.details,.form-grid{grid-template-columns:minmax(0,1fr)}.assignment{flex-direction:column;align-items:stretch}.assignment .field{max-width:none}}@media (max-width:640px){.registration-panel .list-toolbar{flex-direction:row;align-items:center}.data-table thead{display:none}.data-table tbody,.data-table td,.data-table tr{display:block}.data-table tr{padding:var(--space-4);border-bottom:var(--border-width) solid var(--color-border)}.data-table td{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border:0;text-align:left;height:auto;width:auto}.data-table td:before{content:attr(data-label);flex-shrink:0;color:var(--color-muted);font-size:var(--font-small)}.data-table td:first-child:before{content:none}.data-table tr:last-child{border:0}.registration-table td{align-items:flex-start;width:auto}.developer-table td:first-child,.developer-table td:last-child,.project-table td:first-child,.server-table td:first-child{width:auto}.registration-table td:before{flex-shrink:0}.registration-table td:first-child{width:auto;padding-bottom:var(--space-4)}.registration-table td>.registration-person{text-align:right}.registration-table td:first-child>.registration-person{flex:1 1;text-align:left}.project-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2) var(--space-4)}.project-table td{min-width:0;justify-content:flex-start;align-items:baseline;font-size:var(--font-small)}.project-table td:before{flex-shrink:0;font-size:var(--font-tiny)}.project-table td:first-child{grid-column:1/-1;padding-bottom:var(--space-3)}.field input,.field select,.field textarea,.search input{font-size:var(--font-medium)}.login-header{padding-inline:var(--space-4);gap:var(--space-2)}.header-actions{gap:0}.header-caption,.header-separator,.workspace-name{display:none}.topbar{padding:var(--space-3) var(--space-4)}.main-content{padding:var(--space-5) var(--space-4) var(--space-8)}.page-heading{align-items:flex-start;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-6)}.page-heading>.button{align-self:stretch}.list-toolbar{flex-direction:column-reverse;align-items:stretch;padding:var(--space-3);gap:var(--space-3)}.filters{justify-content:flex-start}.search{width:100%}.empty-state{padding:var(--space-8) var(--space-4)}.form-panel{padding:var(--space-5)}.form-actions{flex-wrap:wrap}.workspace-footer{padding:var(--space-5) var(--space-4)}.login-form-side{padding:var(--space-12) var(--space-6)}.login-footer{padding:var(--space-4)}}.version-badge{min-height:var(--size-control);min-width:var(--size-control);padding:var(--space-2) var(--space-3);background:transparent;border:0;border-radius:var(--radius-medium);color:var(--color-muted);font-size:var(--font-tiny)}.version-badge:hover{background:var(--color-soft);color:var(--color-ink)}.connection-status{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--size-control);min-width:var(--size-control);max-width:100%;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-medium);background:transparent;color:var(--color-muted);font-size:var(--font-tiny);text-align:left}.connection-status:hover{background:var(--color-soft);color:var(--color-ink)}.connection-status-dot{width:var(--space-2);height:var(--space-2);flex:0 0 var(--space-2);border-radius:var(--radius-full);background:var(--color-muted)}.connection-status-connected .connection-status-dot{background:var(--color-success)}.connection-status-unavailable .connection-status-dot{background:var(--color-error)}.connection-details{display:grid;gap:var(--space-4);margin:var(--space-6) 0}.connection-details>div{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2) var(--space-4)}.connection-details dt{color:var(--color-muted)}.connection-details dd{margin:0;color:var(--color-ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);margin-bottom:var(--space-5);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-soft);color:var(--color-body)}.alert>svg{flex-shrink:0;width:var(--size-icon);height:var(--size-icon);margin-top:var(--space-1)}.alert-content{min-width:0;flex:1 1}.alert-content>strong{display:block;font-weight:var(--font-weight-strong)}.alert .text-button{color:inherit}.alert-error{background:var(--color-error-surface);color:var(--color-error);border-color:currentColor}.alert-warning{background:var(--color-warning-surface);color:var(--color-warning);border-color:currentColor}.alert-success{background:var(--color-success-surface);color:var(--color-success);border-color:currentColor}.feedback-dialog{width:min(var(--size-dialog),calc(100% - var(--space-8)));max-height:calc(100dvh - var(--space-8));padding:0;margin:auto;overflow:auto;color:var(--color-ink);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-large);box-shadow:var(--shadow-overlay)}.feedback-dialog::backdrop{background:var(--color-overlay)}.dialog-content{padding:var(--space-6)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.dialog-heading h2{min-width:0;font-size:var(--font-medium);font-weight:var(--font-weight-strong)}.dialog-heading .icon-button{margin-right:calc(var(--space-2) * -1)}.dialog-content>p{margin-top:var(--space-3);color:var(--color-body);white-space:pre-line}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-6)}.button.danger{background:var(--color-error);color:var(--color-surface)}.toast-viewport{position:fixed;right:var(--space-6);bottom:var(--space-6);z-index:20;display:grid;gap:var(--space-3);width:min(var(--size-toast),calc(100% - var(--space-8)));padding:0;margin:0;list-style:none;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-large);background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-overlay);pointer-events:auto}.toast-icon{width:var(--size-icon);height:var(--size-icon);margin-top:var(--space-3);flex-shrink:0}.toast-success .toast-icon{color:var(--color-success)}.toast-error .toast-icon{color:var(--color-error)}.toast-warning .toast-icon{color:var(--color-warning)}.toast-content{flex:1 1;min-width:0;padding-block:var(--space-2)}.toast-content strong{font-weight:var(--font-weight-medium)}.toast-content p{margin-top:var(--space-1);color:var(--color-body)}.toast .icon-button{margin-right:calc(var(--space-2) * -1)}@media (max-width:640px){.toast-viewport{right:var(--space-4);bottom:var(--space-4)}.dialog-content{padding:var(--space-5)}}.developer-actions{text-align:right}.db-account-form,.db-account-panel,.db-credentials{display:grid;gap:var(--space-4)}.db-account-panel{margin-top:var(--space-5)}.db-account-panel .alert{margin:0}.db-account-identity{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.db-account-identity .mono{overflow-wrap:anywhere;min-width:0}.db-grants-table td:last-child{text-align:right}.db-credentials{padding-top:var(--space-5);border-top:var(--border-width) solid var(--color-border)}.db-credential-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}