@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)}.adminwrap{display:flex;flex-direction:column;padding:0}.admin-head{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0;height:56px;padding:0 var(--sp-4);background:var(--surface-raised);border-bottom:1px solid var(--border-subtle)}.admin-head .spacer{flex:1}.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;display:flex;background:var(--surface-raised)}.admin .col{display:flex;flex-direction:column;width:clamp(220px,18vw,280px);border-right:1px solid var(--border-subtle);overflow:hidden}.admin .col.wide{flex:1;width:auto;border-right:none}.admin .col>header{display:flex;align-items:center;gap:var(--sp-2);justify-content:space-between;padding:var(--sp-3) var(--sp-4)}.admin h2{font-size:var(--fs-body-lg);margin:0}.admin ul{list-style:none;margin:0;padding:0 var(--sp-2);overflow:auto;flex:1}.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)}.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-2);font-family:inherit;font-size:var(--fs-body);color:var(--text-primary)}.admin .rowmain small{display:block;color:var(--text-secondary);font-weight:400}.rowicons{display:flex;gap:2px;visibility:hidden}.admin li:hover .rowicons,.admin li:focus-within .rowicons{visibility:visible}.iconbtn{display:grid;place-items:center;width:28px;height:28px;padding:0;background:none;border:none;border-radius:var(--r-sm);color:var(--text-muted)}.iconbtn:hover{background:var(--surface-hover);color:var(--text-primary)}.colhint{color:var(--text-muted);font-style:italic;padding:0 var(--sp-4) var(--sp-2)}.colvoid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);color:var(--text-muted);padding:var(--sp-6);text-align:center}.colvoid svg{opacity:.25}.inlineadd{display:flex;gap:var(--sp-1);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle)}.inlineadd input{flex:1;min-width:0}.linklike{background:none;border:none;padding:0;color:var(--brand-primary);font-weight:600;text-decoration:underline;font-size:inherit}.prodgrid{flex:1;overflow:auto;padding:var(--sp-4);align-content:start;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-4)}.pcard{position:relative;display:flex;align-items:center;gap:var(--sp-3);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:var(--sp-3);cursor:pointer}.pcard:hover{box-shadow:var(--shadow-md)}.pcard.incomplete{opacity:.65}.pthumb{position:relative;width:64px;height:80px;flex-shrink:0;display:grid;place-items:center;background:var(--surface-canvas);border-radius:var(--r-md);overflow:hidden}.pthumb img{position:absolute;top:var(--sp-1);left:var(--sp-1);width:calc(100% - 2 * var(--sp-1));height:calc(100% - 2 * var(--sp-1));object-fit:contain}.pthumb .noimg{font-size:9px;color:var(--text-muted)}.mmbadge{position:absolute;left:var(--sp-1);bottom:var(--sp-1);z-index:1;background:var(--overlay-strong);color:var(--text-inverse);font-size:var(--fs-caption);line-height:1;padding:2px var(--sp-1);border-radius:var(--r-sm);font-variant-numeric:tabular-nums}.pcard .pinfo{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.pcard .pinfo strong{font-size:var(--fs-body)}.pcard .pinfo small{color:var(--text-secondary)}.pcard .pdel{position:absolute;top:var(--sp-2);right:var(--sp-2);visibility:hidden}.pcard:hover .pdel,.pcard:focus-within .pdel{visibility:visible}.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:340px;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:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-1);padding:0 var(--sp-3) var(--sp-2)}.library .filters select{min-width:0;width:100%}.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}.mm-ruler{position:absolute;top:0;bottom:0;left:var(--sp-2);width:76px;z-index:4;overflow:hidden;pointer-events:none;color:var(--text-secondary);font-size:var(--fs-caption)}.mm-ruler:after{content:"";position:absolute;top:0;right:0;bottom:0;border-right:1px solid var(--border-strong)}.mm-ruler-tick{position:absolute;right:0;width:var(--sp-2);border-top:1px solid var(--border-subtle);transform:translateY(-50%)}.mm-ruler-tick.major{width:var(--sp-4);border-color:var(--border-strong)}.mm-ruler-tick span{position:absolute;right:calc(var(--sp-4) + var(--sp-1));transform:translateY(-50%);white-space:nowrap;line-height:1;font-variant-numeric:tabular-nums}.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)}.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)}.tsep{width:1px;align-self:stretch;margin:var(--sp-1) 0;background:var(--border-subtle)}.canvashint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;margin:0;color:var(--text-muted);font-size:var(--fs-body-lg);pointer-events:none;z-index:3}.libhead{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-3) 0}.libhead strong{font-size:var(--fs-body-lg)}.libtoggle{display:grid;place-items:center;width:28px;height:28px;padding:0;background:none;border:none;border-radius:var(--r-sm);color:var(--text-secondary)}.libtoggle:hover{background:var(--surface-hover);color:var(--text-primary)}.library.collapsed{width:40px;align-items:center;padding-top:var(--sp-2)}.libitem img{height:56px}.libitem .noimg{width:40px;height:56px}
