@font-face{font-family:Inter;src:url(/fonts/InterVariable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--brand-primary: #4A7C6F;--brand-primary-hover: #3D685C;--brand-primary-active: #31544A;--brand-primary-50: #EEF3F1;--surface-base: #FAFAF8;--surface-raised: #FFFFFF;--surface-hover: #F2F2EF;--surface-active: #EAEAE6;--surface-sidebar: #F5F5F3;--surface-canvas: #F0EEEB;--text-primary: #2C2C2E;--text-secondary: #6B6B70;--text-muted: #9E9EA3;--text-inverse: #FFFFFF;--border-subtle: #E5E3DF;--border-strong: #C7C5C0;--border-focus: #4A7C6F;--status-success: #3A8260;--status-warning: #C78531;--status-error: #D34B4B;--fs-caption: 12px;--fs-body: 14px;--fs-body-lg: 17px;--fs-h3: 20px;--fs-h2: 24px;--fs-h1: 29px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-6: 24px;--sp-8: 32px;--r-sm: 4px;--r-md: 6px;--r-lg: 8px;--shadow-sm: 0 1px 2px 0 rgba(44, 44, 46, .04);--shadow-md: 0 4px 6px -1px rgba(44, 44, 46, .05), 0 2px 4px -2px rgba(44, 44, 46, .03);--overlay-strong: rgba(44, 44, 46, .35);--overlay-soft: rgba(44, 44, 46, .25)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Segoe UI,sans-serif;font-size:var(--fs-body);color:var(--text-primary);background:var(--surface-base)}.shell{display:flex;height:100vh}.content{flex:1;display:flex;flex-direction:column;min-width:0}.sidebar{width:220px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface-sidebar);border-right:1px solid var(--border-subtle)}.sidebar.collapsed{width:56px}.sbrand{display:flex;align-items:center;gap:var(--sp-2);height:48px;padding:0 var(--sp-4);border-bottom:1px solid var(--border-subtle);font-weight:700}.sidebar.collapsed .sbrand{justify-content:center;padding:0}.slogo{width:22px;height:22px;border-radius:var(--r-sm);background:var(--brand-primary);flex-shrink:0}.sidebar nav{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-4) var(--sp-2)}.sidebar a{position:relative;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2);border-radius:var(--r-md);color:var(--text-secondary);text-decoration:none;font-weight:500}.sidebar.collapsed a{justify-content:center}.sidebar a:hover{background:var(--surface-hover);color:var(--text-primary)}.sidebar a.active{background:var(--brand-primary-50);color:var(--brand-primary)}.sidebar a.active:before{content:"";position:absolute;left:-8px;top:4px;bottom:4px;width:3px;border-radius:0 999px 999px 0;background:var(--brand-primary)}.sidebar.collapsed a.active:before{left:-2px}.sidebar svg{flex-shrink:0}.sidebar .spacer{flex:1}.page{padding:var(--sp-4);overflow:auto;flex:1}button{cursor:pointer;font-family:inherit;font-size:var(--fs-body)}button.primary{background:var(--brand-primary);color:var(--text-inverse);border:none;border-radius:var(--r-md);padding:var(--sp-2) var(--sp-4);font-weight:600;box-shadow:var(--shadow-sm)}button.primary:hover:not(:disabled){background:var(--brand-primary-hover)}button.primary:active:not(:disabled){background:var(--brand-primary-active)}button.ghost,.admin button:not(.primary),.gactions button{background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-1) var(--sp-2)}button.ghost:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}button:disabled{opacity:.5;cursor:not-allowed}:is(button,a,input,select):focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}input,select{font-family:inherit;font-size:var(--fs-body);color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--r-sm);padding:var(--sp-1) var(--sp-2)}input:hover,select:hover{border-color:var(--border-strong)}input:focus,select:focus{border-color:var(--border-focus);outline:none;box-shadow:0 0 0 1px var(--border-focus)}.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--surface-canvas)}.login-card,.account-card{width:340px;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3)}.login-card h1{margin:0;font-size:var(--fs-h2);display:flex;align-items:center;gap:var(--sp-2)}.field{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-caption);color:var(--text-secondary)}.field input{font-size:var(--fs-body)}.admin{display:flex;gap:var(--sp-3);height:100%}.admin .col{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-3);width:260px;overflow:auto}.admin .col.wide{flex:1}.admin header{display:flex;align-items:center;gap:var(--sp-2);justify-content:space-between}.admin h2{font-size:var(--fs-body-lg);margin:0}.admin ul{list-style:none;margin:var(--sp-2) 0 0;padding:0}.admin li{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1);border-radius:var(--r-md)}.admin li.sel{background:var(--brand-primary-50);box-shadow:inset 3px 0 0 var(--brand-primary)}.admin li.sel .rowmain{color:var(--brand-primary);font-weight:600}.admin .rowmain{flex:1;text-align:left;background:none;border:none;padding:var(--sp-1);font-family:inherit;font-size:var(--fs-body);color:var(--text-primary)}.admin .rowmain small{display:block;color:var(--text-secondary);font-weight:400}.admin .products img{height:48px}.admin .products .noimg{width:36px;height:48px;background:var(--surface-hover);color:var(--text-muted);font-size:9px;display:grid;place-items:center;border-radius:var(--r-sm)}.admin .products .pinfo{flex:1;display:flex;flex-direction:column}.admin li.incomplete{opacity:.6}.warn,.error{color:var(--status-error)}.chk{font-size:var(--fs-caption);display:flex;gap:var(--sp-1);align-items:center;color:var(--text-secondary)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-strong);display:grid;place-items:center;z-index:10}.modal{background:var(--surface-raised);border-radius:var(--r-lg);padding:var(--sp-6);width:420px;display:flex;flex-direction:column;gap:var(--sp-3);max-height:90vh;overflow:auto;box-shadow:var(--shadow-md)}.modal label{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-caption);color:var(--text-secondary)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--sp-2)}.form-preview{max-height:120px;align-self:center}.composer{display:flex;flex:1;min-height:0}.library{width:300px;background:var(--surface-raised);display:flex;flex-direction:column;border-right:1px solid var(--border-subtle)}.library .search{margin:var(--sp-3);padding:var(--sp-2)}.library .filters{display:flex;gap:var(--sp-1);padding:0 var(--sp-3) var(--sp-2)}.library .filters select{flex:1}.library .results{overflow:auto;flex:1;padding:0 var(--sp-3) var(--sp-3)}.library h3{font-size:var(--fs-caption);color:var(--text-muted);margin:var(--sp-3) 0 var(--sp-1);text-transform:uppercase;letter-spacing:.04em}.libitem{display:flex;gap:var(--sp-2);align-items:center;width:100%;text-align:left;background:none;border:none;padding:var(--sp-1);border-radius:var(--r-md);font-family:inherit}.libitem:hover:not(:disabled){background:var(--surface-hover)}.libitem:disabled{opacity:.45}.libitem img{height:44px}.libitem .noimg{width:30px;height:44px;background:var(--surface-hover);display:grid;place-items:center;border-radius:var(--r-sm);color:var(--text-muted)}.libitem strong{display:block;font-size:var(--fs-caption);color:var(--text-primary)}.libitem small{color:var(--text-secondary)}.workarea{flex:1;display:flex;flex-direction:column;min-width:0}.toolbar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--surface-raised);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;row-gap:var(--sp-1)}.toolbar label{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-caption);color:var(--text-secondary)}.toolbar input[type=number]{width:60px}.toolbar .spacer{flex:1}.canvas-area{flex:1;position:relative;overflow:hidden;background:var(--surface-canvas)}.empty{color:var(--text-muted);padding:var(--sp-3)}.stage-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.fit-btn{position:absolute;right:var(--sp-3);bottom:var(--sp-3);z-index:5}.selbar{position:absolute;top:var(--sp-2);left:50%;transform:translate(-50%);z-index:5;display:flex;gap:var(--sp-2);align-items:center;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-1) var(--sp-3);box-shadow:var(--shadow-md)}.groups-head{display:flex;gap:var(--sp-3);align-items:center}.groups-head h1{font-size:var(--fs-h1);margin:0;letter-spacing:-.02em}.groups-head input{padding:var(--sp-2);width:260px}.hint{color:var(--text-secondary);font-size:var(--fs-caption)}.groups-head .spacer{flex:1}.groupgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-4);margin-top:var(--sp-4)}.gcard{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column}.gcard:hover{box-shadow:var(--shadow-md)}.gpreview{position:relative;height:150px;background:var(--surface-canvas);border-bottom:1px solid var(--border-subtle);display:grid;place-items:center;cursor:pointer;overflow:hidden}.gpreview img{position:absolute;top:var(--sp-2);left:var(--sp-2);width:calc(100% - 2 * var(--sp-2));height:calc(100% - 2 * var(--sp-2));object-fit:contain}.gph{color:var(--text-muted);font-size:var(--fs-caption)}.gbody{padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1)}.gbody small{color:var(--text-secondary)}.gactions{display:flex;gap:var(--sp-2);margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--border-subtle)}.adminwrap{display:flex;flex-direction:column;gap:var(--sp-2)}.breadcrumb{font-size:var(--fs-body);color:var(--text-secondary)}.breadcrumb .cur{color:var(--text-primary);font-weight:600}.admin{flex:1;min-height:0}.inlineadd{display:flex;gap:var(--sp-1);margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--border-subtle)}.inlineadd input{flex:1;min-width:0}.colhint{color:var(--text-muted);font-style:italic;padding:var(--sp-3) var(--sp-1)}.linklike{background:none;border:none;padding:0;color:var(--brand-primary);font-weight:600;text-decoration:underline}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-soft);z-index:10}.drawer{position:fixed;top:0;right:0;bottom:0;width:400px;z-index:11;background:var(--surface-raised);border-left:1px solid var(--border-subtle);box-shadow:var(--shadow-md);padding:var(--sp-6);overflow:auto;display:flex;flex-direction:column;gap:var(--sp-3)}.drawer-head{display:flex;align-items:center;justify-content:space-between}.drawer-head h2{margin:0;font-size:var(--fs-body-lg)}.drawer label{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-caption);color:var(--text-secondary)}.drawer .mmfield{color:var(--brand-primary);font-weight:600}.drawer .mmfield small{color:var(--text-muted);font-weight:400}.drawer-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:auto;padding-top:var(--sp-3);border-top:1px solid var(--border-subtle)}.welcome{display:grid;place-items:center;text-align:center;background:var(--surface-canvas)}.welcome h1{font-size:var(--fs-h1);letter-spacing:-.02em;margin:var(--sp-4) 0 var(--sp-2)}.welcome p{color:var(--text-secondary);margin:0 0 var(--sp-6)}.slogo.big{width:48px;height:48px;display:inline-block;border-radius:var(--r-lg)}.btnlink{display:inline-block;text-decoration:none}a.primary.btnlink{background:var(--brand-primary);color:var(--text-inverse);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-4);font-weight:600}a.primary.btnlink:hover{background:var(--brand-primary-hover)}.wsteps{font-size:var(--fs-caption);color:var(--text-muted);margin-top:var(--sp-8)}.wsteps span{font-weight:600}.accountwrap{display:grid;place-items:start center;padding-top:var(--sp-8)}.account-card h2{margin:0 0 var(--sp-2);font-size:var(--fs-h2)}.account-card form{display:flex;flex-direction:column;gap:var(--sp-3)}.toolbar button.primary{margin-left:var(--sp-1)}.library .search{padding:var(--sp-2) var(--sp-3)}.selbar button{border:none;background:none;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);color:var(--text-primary)}.selbar button:hover:not(:disabled){background:var(--surface-hover)}.fit-btn button,button.fit-btn{box-shadow:var(--shadow-sm)}
