:root{font:14px/1.5 "Segoe UI",system-ui,sans-serif;color:var(--ink, #0c4a6e);background:var(--tint, #f0f9ff);--accent:var(--brand, #0369a1);--line:var(--line-soft, #e0f2fe);--muted:#64748b;--navy:var(--ink, #0c4a6e)}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input,select{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--sky, #0ea5e9);outline-offset:3px}header{height:68px;display:flex;align-items:center;gap:48px;padding:0 30px;background:var(--navy);color:var(--surface, #fff);position:sticky;top:0;z-index:30;border-bottom:1px solid var(--ink, #0c4a6e)}.brand{font-size:24px;letter-spacing:-1px;font-weight:750;text-decoration:none;width:180px;flex-shrink:0}.disciplines{display:flex;align-items:center;height:100%;gap:32px}.languages{margin-left:auto;font-size:12px;white-space:nowrap;display:flex;gap:8px}.languages a{text-decoration:none;color:var(--sky-soft, #bae6fd)}.languages a[lang="vi"]{color:var(--surface, #fff)}#electrical-menu{position:relative;height:100%;display:flex;align-items:center}#electrical-menu summary{height:68px;display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;font-weight:600;border-bottom:3px solid var(--sky, #0ea5e9);padding-top:3px}summary::-webkit-details-marker{display:none}.future-discipline{display:flex;align-items:center;gap:8px;color:var(--subtle, #94a3b8);font-size:13px}.future-discipline small{font-size:9px;border:1px solid var(--brand, #0369a1);border-radius:4px;padding:1px 5px}.tool-menu{position:absolute;top:66px;left:-18px;width:340px;max-width:calc(100vw - 30px);background:var(--surface, #fff);color:var(--ink, #0c4a6e);border:1px solid var(--line);border-radius:0 0 10px 10px;box-shadow:0 14px 40px #0c4a6e26;padding:10px}.tool-menu p{font-size:10px;letter-spacing:.1em;padding:2px 12px;color:var(--muted)}.tool-menu a{display:block;padding:12px;text-decoration:none;border-radius:6px}.tool-menu strong{display:block;font-size:13px}.tool-menu small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.tool-menu a:hover,.tool-menu a[aria-current]{background:var(--tint, #f0f9ff);color:var(--accent)}
.sidebar{width:238px;background:var(--surface, #fff);position:fixed;left:0;top:68px;bottom:0;border-right:1px solid var(--line);padding:30px 16px;display:flex;flex-direction:column;z-index:20}.sidebar-label{font-size:10px;font-weight:600;letter-spacing:.12em;color:var(--muted, #64748b);margin:0 12px 24px}.discipline-label{display:flex;align-items:center;gap:10px;padding:0 12px 24px;border-bottom:1px solid var(--line);margin-bottom:18px}.discipline-label strong{display:block;font-size:15px}.discipline-label small{font-size:10px;color:var(--muted)}.electrical-icon{display:grid;place-items:center;width:34px;height:38px;border-radius:8px;font-size:30px;background:var(--warning-bg, #fffbeb);color:var(--warning, #92400e)}.side-tools{display:grid;gap:6px}.side-tools a{display:flex;gap:10px;align-items:start;text-decoration:none;border-radius:6px;padding:13px 10px;border:1px solid transparent}.side-tools strong{font-size:12px;display:block;font-weight:600}.side-tools small{display:block;font-size:10px;line-height:1.5;color:var(--muted, #64748b);margin-top:4px}.side-tools a[aria-current]{background:var(--tint, #f0f9ff);border-color:var(--line-soft, #e0f2fe);color:var(--ink, #0c4a6e)}.side-tools a:hover{background:var(--tint, #f0f9ff)}.tool-number{font-size:10px;line-height:20px;color:var(--muted, #64748b);font-variant-numeric:tabular-nums}.side-tools a[aria-current] .tool-number{color:var(--accent)}.sidebar-foot{margin-top:auto;padding:18px 10px 0;border-top:1px solid var(--line);font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px}.sidebar-foot>span:last-child{margin-left:auto}.version-dot{width:6px;height:6px;border-radius:50%;background:var(--warning, #92400e)}.app-main{margin-left:238px;padding:30px 32px 0;max-width:1800px}.breadcrumb{font-size:10px;color:var(--muted, #64748b);margin:0 0 12px}.breadcrumb span{margin:0 10px;color:var(--subtle, #94a3b8)}h1{display:flex;align-items:center;gap:16px;font-size:29px;letter-spacing:-.8px;line-height:1.2;margin:0;color:var(--ink, #0c4a6e)}.heading-badge{letter-spacing:0;font-size:10px;font-weight:500;border:1px solid var(--line-soft, #e0f2fe);padding:4px 8px;border-radius:4px;color:var(--muted, #64748b);background:var(--surface, #fff)}.page-description{font-size:12px;color:var(--muted);margin:10px 0 24px}h2{font-size:18px;line-height:1.4;letter-spacing:-.3px;margin:6px 0}h3{font-size:13px;margin:0 0 12px}p{line-height:1.65}.muted{color:var(--muted);font-size:11px}.error{white-space:pre-line;color:var(--danger, #b91c1c);font-size:12px;margin:0}#error:empty,#status:empty{display:none}#status:not(:empty),#error:not(:empty){padding:12px 15px;margin:0 0 16px;border-radius:6px;background:var(--warning-bg, #fffbeb)}#status{font-size:12px;color:var(--accent)}
.context-bar{display:flex;align-items:center;gap:20px;background:var(--surface, #fff);border:1px solid var(--line);border-radius:8px;padding:14px 18px;min-height:78px}.context-bar>label{margin:0;flex:1;max-width:250px;min-width:140px}.context-bar label>span{display:block;font-size:9px;letter-spacing:.07em;text-transform:uppercase;font-weight:600;color:var(--muted, #64748b)}.context-bar select{border:0;box-shadow:none;padding:4px 18px 0 0;font-size:12px;background-color:transparent;height:26px}.context-divider{height:30px;width:1px;background:var(--line)}.account{display:flex;align-items:center;gap:10px;margin-left:auto;min-width:0}.avatar{color:var(--muted, #64748b);font-size:22px}.account p{font-size:10px;max-width:155px;overflow-wrap:anywhere;color:var(--muted, #64748b);margin:0}.account button{font-size:10px;padding:6px 8px;white-space:nowrap}.management{margin:10px 0 24px}.management>summary{font-size:10px;color:var(--muted, #64748b);list-style:none;cursor:pointer;display:flex;justify-content:flex-end;gap:10px;padding:5px 2px}.management-grid{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:24px;background:var(--surface, #fff);border:1px solid var(--line);border-radius:8px;padding:24px;margin-top:10px}.management-grid>div:not(:last-child){border-right:1px solid var(--line);padding-right:24px}.management-grid h3{margin-bottom:16px}.management .row{gap:10px}.calculation-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,310px);gap:22px;align-items:start}.card{background:var(--surface, #fff);border:1px solid var(--line);border-radius:9px;padding:24px;margin-bottom:20px;min-width:0}.eyebrow{font-size:9px;letter-spacing:.14em;color:var(--accent);text-transform:uppercase;margin:0;font-weight:650}#tool-description{margin:5px 0 0;font-size:12px}#electrical-panel>p:last-of-type{padding:12px 14px;border-radius:5px;background:var(--tint, #f0f9ff);font-size:10px;line-height:1.7;margin:18px 0 24px;color:var(--muted, #64748b)}#electrical-panel{scroll-margin-top:88px}label{display:block;font-size:11px;font-weight:500;color:var(--text-secondary, #475569);margin:0 0 16px;min-width:0}input,select{display:block;width:100%;min-width:0;border:1px solid var(--line-soft, #e0f2fe);background:var(--surface, #fff);color:var(--ink, #0c4a6e);border-radius:5px;padding:9px 11px;margin-top:6px;height:39px;transition:border-color .15s}input:hover,select:hover{border-color:var(--sky-soft, #bae6fd)}input:focus,select:focus{border-color:var(--accent);outline:2px solid var(--line-soft, #e0f2fe);outline-offset:0}button{background:var(--accent);color:var(--surface, #fff);border:1px solid transparent;border-radius:5px;font-size:12px;font-weight:600;padding:10px 14px}button:hover{filter:brightness(.96)}button.secondary{background:var(--tint, #f0f9ff);color:var(--muted, #64748b);border:1px solid var(--line);font-weight:500}.row{display:flex;gap:14px;align-items:end}.row>*{flex:1;min-width:0}#fields{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}#fields>label:has(input[type="text"]),#data-rows,#fields>button{grid-column:1/-1}#data-rows{margin-bottom:12px}.candidate{background:var(--canvas, #f8fafc);border:1px solid var(--tint, #f0f9ff);border-radius:6px;padding:14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;align-items:end;margin-bottom:10px}.candidate label{margin:0;font-size:10px}.candidate button{font-size:10px;padding:9px;align-self:end;height:39px}.candidate input{background:var(--surface, #fff)}.candidate:only-child button{color:var(--muted, #64748b)}#fields>button{font-size:10px;justify-self:start;padding:7px 12px;margin:0 0 22px;background:transparent;color:var(--accent);border:1px dashed var(--subtle, #94a3b8)}#calculate{width:100%;margin-top:8px;padding:12px}.results-column .card{padding:20px}.results-column h2{font-size:14px;padding-bottom:15px;border-bottom:1px solid var(--line);margin:0 0 16px}#result:empty{min-height:165px;text-align:center;display:flex;align-items:center;justify-content:center;color:var(--muted, #64748b);padding:25px;font-size:11px;background:linear-gradient(var(--surface, #fff),var(--canvas, #f8fafc));border:1px dashed var(--line, #e2e8f0);border-radius:6px}#result:empty::after{content:attr(data-empty)}#result h3{font-size:12px;color:var(--accent);margin-top:0}#result>p{font-size:10px;color:var(--warning, #92400e);background:var(--warning-bg, #fffbeb);padding:10px;border-radius:4px}table{width:100%;border-collapse:collapse;font-size:11px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px 0;font-weight:400}td{text-align:right;font-weight:650;color:var(--ink, #0c4a6e)}th{color:var(--muted, #64748b)}#result details{font-size:10px;margin:18px 0;color:var(--muted, #64748b)}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px}#history{border-top:1px solid var(--line);margin-top:22px;padding-top:14px}#history::before{content:attr(data-title);display:block;color:var(--muted, #64748b);font-size:10px;font-weight:600;letter-spacing:.03em;margin-bottom:10px}#history:empty::after{content:attr(data-empty);display:block;font-size:10px;color:var(--subtle, #94a3b8);padding:6px 0}#history button{font-size:9px;width:100%;text-align:left;margin-bottom:6px;padding:10px}#more-runs{font-size:10px;width:100%}footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:9px;color:var(--subtle, #94a3b8);padding:24px 0;border-top:1px solid var(--line);margin-top:18px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}#auth{max-width:900px;margin:30px auto}#auth .card{padding:30px}#auth h2{margin-bottom:24px}#auth button{width:100%;margin-top:8px}
@media(min-width:1600px){.app-main{padding:36px 48px}.calculation-layout{grid-template-columns:minmax(0,1fr) 360px;gap:28px}.card{padding:30px}}@media(max-width:1150px){.sidebar{width:210px;padding:26px 12px}.app-main{margin-left:210px;padding:24px 22px 0}.brand{width:150px}header{gap:30px}.calculation-layout{grid-template-columns:minmax(0,1fr)}.results-column .card{margin-top:0}.context-bar{flex-wrap:wrap}.account{border-top:1px solid var(--line);padding-top:10px;width:100%;margin-left:0}.account p{max-width:none;flex:1}.management-grid{grid-template-columns:1fr}.management-grid>div:not(:last-child){border-right:0;padding-right:0;border-bottom:1px solid var(--line);padding-bottom:20px}}
@media(max-width:700px){header{height:auto;min-height:64px;gap:12px;padding:14px 18px;flex-wrap:wrap}.brand{font-size:23px;width:auto}.languages{order:2}.disciplines{order:3;width:100%;gap:24px;font-size:12px;height:36px}.future-discipline{font-size:11px}.future-discipline small{font-size:8px}#electrical-menu summary{height:36px}.tool-menu{top:36px;left:0}.sidebar{position:static;width:auto;border-right:0;padding:12px 16px;background:var(--surface, #fff);border-bottom:1px solid var(--line)}.sidebar-label,.discipline-label,.sidebar-foot{display:none}.side-tools{display:flex;overflow-x:auto;gap:6px}.side-tools a{min-width:max-content;padding:8px 10px;align-items:center}.side-tools small{display:none}.side-tools strong{font-size:10px}.tool-number{font-size:9px}.app-main{margin-left:0;padding:22px 16px 0}h1{font-size:26px}.heading-badge{font-size:9px}.context-bar{gap:12px;padding:14px}.context-bar>label{min-width:110px;max-width:none}.context-divider{display:none}.account p{font-size:9px}.card{padding:18px}#fields{gap:0 12px}.candidate{grid-template-columns:1fr 1fr;padding:12px}.candidate button{grid-column:1/-1;height:30px;padding:5px}#fields>label{grid-column:1/-1}.grid{grid-template-columns:1fr;gap:0}.breadcrumb{font-size:9px}footer{font-size:8px;gap:8px}.page-description{font-size:11px}.calculation-layout{gap:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
#member-menu{position:relative;flex-shrink:0}#member-menu>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font-size:12px;font-weight:600;padding:9px 12px;border:1px solid var(--brand, #0369a1);border-radius:6px;white-space:nowrap}.member-panel{position:absolute;right:0;top:calc(100% + 16px);width:410px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain;background:var(--surface, #fff);border:1px solid var(--line);box-shadow:0 16px 45px #0c4a6e29;border-radius:9px;padding:20px;color:var(--ink, #0c4a6e)}.member-heading{font-size:9px;font-weight:650;letter-spacing:.12em;color:var(--muted, #64748b);margin:0 0 18px}.member-panel .context-bar{padding:0;border:0;display:block;min-height:0}.member-panel .context-bar>label{max-width:none;margin:0 0 18px}.member-panel .context-bar select{border:1px solid var(--line-soft, #e0f2fe);height:39px;padding:8px 10px;margin-top:6px}.member-panel .context-divider,.member-panel .avatar{display:none}.member-panel .account{border-top:1px solid var(--line);padding:15px 0;margin:0;display:flex;width:100%}.member-panel .account p{flex:1;max-width:none;font-size:10px}.member-panel .management{margin:0}.member-panel .management>summary{justify-content:space-between;font-size:11px;padding:14px 0;border-top:1px solid var(--line)}.member-panel .management-grid{display:block;margin:0;padding:0;border:0}.member-panel .management-grid>div{border-right:0;padding:16px 0;border-top:1px solid var(--line)}.member-panel #auth{margin:0}.member-panel #auth .grid{display:block}.member-panel #auth .card{margin:0;border:0;padding:0;box-shadow:none}.member-panel #auth h2{font-size:16px;margin:0 0 18px}.signup{border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.signup>summary{font-size:11px;color:var(--accent);cursor:pointer}.signup form{margin-top:18px!important}.member-panel label{color:var(--text-secondary, #475569)}.member-panel input{font-size:12px}.member-panel button{width:100%}.member-panel .account button{width:auto}.member-panel #member-feedback:empty{display:none}#member-feedback:not(:empty){font-size:11px;color:var(--danger, #b91c1c);background:var(--danger-bg, #fef2f2);padding:10px;border-radius:4px}header{gap:24px}.languages{margin-left:auto}#guest-intro{max-width:680px;margin-top:28px}#guest-intro .muted{font-size:12px}
@media(max-width:700px){#member-menu{order:2;margin-left:0}.languages{order:1;margin-left:auto}.brand{margin-right:auto}#member-menu>summary{font-size:11px;padding:7px 9px}.member-panel{position:fixed;right:14px;left:14px;top:60px;width:auto;max-width:none;max-height:calc(100dvh - 76px)}header{gap:12px}.disciplines{order:3}}
#project-menu{position:relative;flex-shrink:0}#project-menu>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font-size:12px;font-weight:600;padding:9px 12px;border:1px solid var(--brand, #0369a1);border-radius:6px;white-space:nowrap}#project-feedback:empty{display:none}#project-feedback:not(:empty){font-size:11px;color:var(--danger, #b91c1c);background:var(--danger-bg, #fef2f2);padding:10px;border-radius:4px}.project-context{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--surface, #fff);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:7px;margin:0 0 22px}.project-context-icon{display:grid;place-items:center;font-size:21px;color:var(--accent);width:34px;height:38px;background:var(--tint, #f0f9ff);border-radius:6px}.project-context>div{display:flex;flex-direction:column;min-width:0;gap:3px}.project-context-label{font-size:8px;font-weight:650;letter-spacing:.1em;color:var(--muted, #64748b)}#current-project{font-size:14px;color:var(--ink, #0c4a6e);overflow-wrap:anywhere}#current-organization{font-size:10px;color:var(--muted, #64748b)}#current-project-meta{font-size:10px;color:var(--muted, #64748b);margin-left:auto;white-space:nowrap}.project-context button{font-size:10px;white-space:nowrap}header{gap:18px}.brand{width:165px}.disciplines{gap:25px}
@media(min-width:701px) and (max-width:1100px){header{height:112px;flex-wrap:wrap;padding:10px 22px;gap:6px 18px}.brand{flex:1;width:auto}.languages{order:1;margin-left:0}#member-menu{order:2}.disciplines{order:3;height:36px;flex:1}#electrical-menu summary{height:36px}.tool-menu{top:36px}#project-menu{order:4}.sidebar{top:112px}.member-panel{max-height:calc(100dvh - 140px)}#project-menu .member-panel{top:calc(100% + 8px)}}
@media(max-width:700px){#project-menu{order:4;margin-left:auto}#project-menu>summary{font-size:10px;padding:6px 8px;gap:5px}.disciplines{width:auto;flex:1;gap:13px}.disciplines .future-discipline{gap:3px;font-size:10px}.disciplines .future-discipline small{display:none}.project-context{flex-wrap:wrap;padding:14px;gap:10px}.project-context>div{flex:1}.project-context button{width:100%;font-size:10px}.project-context-icon{width:28px;height:32px}#current-project{font-size:13px}#current-project-meta{font-size:9px}.member-panel{top:62px}}
@media(min-width:701px) and (max-width:1100px){header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:40px 40px;gap:8px 18px;padding:12px 22px;height:112px}.brand{grid-column:1;grid-row:1}.languages{grid-column:2;grid-row:1;margin:0}#member-menu{grid-column:3;grid-row:1}.disciplines{grid-column:1/3;grid-row:2;margin:0;width:auto;gap:26px}#project-menu{grid-column:3;grid-row:2;margin:0;justify-self:end}.disciplines .future-discipline small{white-space:nowrap}}
.deletion-actions{border-top:1px solid var(--danger-line, #fecaca);margin-top:14px;padding-top:12px}.deletion-actions p{font-size:10px;color:var(--muted, #64748b);margin:0 0 8px}.member-panel .danger-text{display:block;color:var(--danger, #b91c1c);background:var(--danger-bg, #fef2f2);border:1px solid var(--danger-line, #fecaca);text-align:left;font-size:11px;margin:8px 0;padding:9px 12px}#deletion-dialog{border:1px solid var(--line);border-radius:12px;padding:26px;max-width:440px;width:calc(100% - 32px);box-shadow:0 20px 80px #0c4a6e33;color:var(--ink, #0c4a6e)}#deletion-dialog::backdrop{background:#0c4a6e80}#deletion-dialog h2{margin:0 0 14px;font-size:20px}#deletion-explanation{font-size:12px;color:var(--muted, #64748b)}#deletion-name{display:block;overflow-wrap:anywhere;background:var(--tint, #f0f9ff);padding:12px;border-radius:5px;margin:15px 0;font-size:14px}#deletion-dialog label{font-size:12px;margin-top:20px}#deletion-error:empty{display:none}#deletion-error{font-size:11px;color:var(--danger, #b91c1c)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.danger-button{background:var(--danger, #b91c1c);color:var(--surface, #fff)}
#deletion-dialog{max-height:calc(100dvh - 40px);overflow-y:auto}#deletion-name:empty{display:none}#deletion-choices{border-bottom:1px solid var(--line);margin-bottom:16px;padding-bottom:2px}#deletion-choices label{margin:14px 0}#deletion-confirmation:disabled{background:var(--tint, #f0f9ff)}#deletion-choices select{font-size:12px}
