/* Application layout and state rules. Shared controls come from Evercare admin 1.1.0. */
body{min-width:320px}
.topbar{min-height:4.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 2rem;background:var(--surface);border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:.75rem;min-width:0}
.brand img{display:block;width:7.5rem;height:3rem;object-fit:contain;flex:none}
.brand small{border-inline-start:1px solid var(--border);padding-inline-start:.75rem;color:var(--text-muted);font-size:.875rem;line-height:1.3}
.account{display:flex;align-items:center;gap:1rem;font-size:.875rem;min-width:0}
.account>span{overflow-wrap:anywhere}
.account form{margin:0}
.workspace{max-width:1600px;margin:auto;display:grid;grid-template-columns:17rem minmax(0,1fr);gap:2rem;padding:2rem}
.sidebar{align-self:start;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem}
.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.sidebar-top h2{font-size:1.125rem;margin:0}
.sidebar-top .btn{white-space:nowrap}
.sidebar .muted{font-size:.875rem;margin:.5rem 0 1rem}
#history{display:grid;gap:.5rem;max-height:min(60vh,36rem);overflow:auto;font-size:.875rem}
.history-item{display:block;width:100%;min-height:3.5rem;text-align:start;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);padding:.75rem;font-size:.875rem;cursor:pointer;overflow-wrap:anywhere}
.history-item:hover{background:var(--surface-subtle)}
.history-item.active{background:var(--selected);border-color:var(--action);color:var(--action);font-weight:600}
.history-item small{display:block;color:var(--text-muted);font-size:.875rem;font-weight:400;margin-top:.25rem}
.calculator-link{display:block;border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem;font-size:.875rem}
.editor{min-width:0;max-width:72rem;padding-bottom:3rem}
.page-heading{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1.5rem}
.page-heading h1{margin:.25rem 0 .5rem}
.page-heading p:last-child{margin:0}
.page-heading .badge{flex:none;margin-top:.5rem}
.eyebrow{margin:0;color:var(--action)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem;min-width:0}
.section-heading{display:flex;align-items:start;gap:.75rem;margin-bottom:1.5rem}
.section-heading h2{font-size:1.25rem;margin:0 0 .25rem}
.section-heading p{margin:0}
.step{display:inline-grid;place-items:center;width:2rem;height:2rem;flex:none;border-radius:var(--radius-md);background:var(--selected);color:var(--action);font-size:.875rem;font-weight:600}
.grid{gap:1rem 1.5rem}
label{display:block;font-size:.875rem;font-weight:600;min-width:0}
label input:not([type=checkbox],[type=radio],[type=file]),label select,label textarea,#recommendations{display:block;width:100%;min-height:2.75rem;margin-top:.5rem;padding:.5rem .75rem;border:1px solid var(--border-control);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:1rem;font-weight:400}
label textarea,#recommendations{min-height:7rem;resize:vertical;line-height:1.5}
label textarea[readonly],#recommendations[readonly]{background:var(--surface-subtle)}
.required{font-weight:400;color:var(--text-muted)}
.hint{color:var(--text-muted);font-size:.875rem}
summary{display:flex;align-items:center;gap:.75rem;list-style:none;min-height:2.75rem;font-size:1rem}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";margin-inline-start:auto;color:var(--action);font-size:1.5rem;font-weight:400}
details[open]>summary:after{content:"−"}
summary small{display:block;color:var(--text-muted);font-size:.875rem;font-weight:400;margin-top:.25rem}
details[open]>summary{margin-bottom:1.5rem}
.device-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.device{border:2px dashed var(--border-control);border-radius:var(--radius-md);background:var(--surface-subtle);padding:1rem;min-width:0}
.device h3{font-size:1rem;margin:0 0 .75rem}
.upload-label{display:block}
.device input[type=file]{display:block;width:100%;max-width:100%;margin-top:.5rem;font-size:.875rem;font-weight:400}
.device-state{font-size:.875rem;color:var(--text-muted);overflow-wrap:anywhere;margin:.75rem 0 0}
.device-state.error{color:var(--danger)}
.text-button{border:0;background:transparent;color:var(--action);padding:.5rem 0;min-height:2.75rem;font-size:.875rem;font-weight:600;text-align:start;cursor:pointer}
.text-button:hover{text-decoration:underline}
.actionbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin:1.5rem 0 2rem}
.actionbar .actions,.delivery-actions{display:flex;gap:.75rem;flex-wrap:wrap}
#saved{font-size:.875rem}
#message:not(:empty){display:flex;align-items:start;padding:1rem;margin-bottom:1.5rem;border-radius:var(--radius-md);background:var(--success-bg);color:var(--success);font-size:.875rem}
#message.error:not(:empty){background:var(--danger-bg);color:var(--danger)}
#message.loading:not(:empty){background:var(--info-bg);color:var(--info)}
.badge{white-space:normal}
.badge.info{background:var(--info-bg);color:var(--info)}
.badge.warning{background:var(--warning-bg);color:var(--warning)}
.badge.success{background:var(--success-bg);color:var(--success)}
.badge.danger{background:var(--danger-bg);color:var(--danger)}
pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.875rem;line-height:1.5}
.private-notes{border-inline-start:3px solid var(--warning)}
#preview{display:block;width:100%;height:40rem;border:1px solid var(--border);margin-top:.75rem;background:var(--surface)}
.check{display:flex;align-items:start;gap:.75rem;margin-bottom:1rem}
.check input{margin-top:.2rem}
.danger{color:var(--danger)}
#delete{margin-top:0}
.calculator-form .wide{grid-column:1/-1}
.calculator-section{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1.5rem}
.calculator-section h3{font-size:1rem;color:var(--action);margin-bottom:1rem}
.calculator-field .hint{display:block;margin-top:.5rem;font-weight:400}
.calculator-optional{margin-top:1.5rem}
.calculator-optional>summary{color:var(--action)}
.login-wrap{min-height:calc(100dvh - 4.5rem);display:grid;place-items:center;padding:2rem 1rem}
.login{width:min(100%,28rem);margin:0}
.login h1{margin:.25rem 0 .5rem}
.login .muted{margin-bottom:1.5rem}
.login label{margin-bottom:1rem}
.login .alert{margin-bottom:1.5rem}
.login .btn{width:100%;margin-top:.5rem}
[hidden]{display:none!important}
@media(max-width:1023px){.workspace{grid-template-columns:13rem minmax(0,1fr);gap:1.5rem}.device-grid{grid-template-columns:1fr}}
@media(max-width:767px){.topbar{padding:.5rem 1rem;min-height:4rem}.brand{gap:.5rem}.brand img{width:5.5rem;height:2.75rem}.brand small{padding-inline-start:.5rem;font-size:.75rem}.account{gap:.5rem}.account>span{max-width:7rem;font-size:.75rem}.workspace{display:block;padding:1rem}.sidebar{margin-bottom:1.5rem}.sidebar-top h2{font-size:1rem}#history{display:flex;max-height:none;overflow:auto}.history-item{min-width:10rem;max-width:13rem}.page-heading{display:block}.page-heading h1{font-size:1.75rem}.page-heading .badge{display:inline-flex;margin-top:1rem}.card{padding:1rem}.grid{grid-template-columns:minmax(0,1fr)}.actionbar{display:block;padding:1rem}.actionbar .actions{margin-top:.75rem}.actionbar .actions>*{flex:1}.delivery-actions>*{flex:1}.editor{padding-bottom:1.5rem}#preview{height:30rem}}
@media(max-width:480px){.account>span{display:none}.account .btn{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
