:root{font-family:Segoe UI,system-ui,sans-serif;line-height:1.5;color:#1a1a1a;background:#f4f6f8}*{box-sizing:border-box}body{margin:0}a{color:#1565c0;text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#1e3a5f;color:#fff;padding:.75rem 1.5rem}.app-header h1{margin:0;font-size:1.25rem;font-weight:600}.app-main{flex:1;padding:1.5rem;max-width:1200px;width:100%;margin:0 auto}.page-title{margin:0 0 1rem;font-size:1.5rem}.page-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.page-toolbar__start,.page-toolbar__end{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.page-toolbar__end{margin-left:auto}.toolbar{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.toolbar-section-title{margin:0;flex:1;font-size:1.1rem;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #c5cdd6;background:#fff;color:#1a1a1a;padding:.45rem .9rem;border-radius:6px;cursor:pointer;font:inherit;line-height:1.25;text-decoration:none;white-space:nowrap}a.btn:hover{text-decoration:none}.btn:hover{background:#eef2f6}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:#1565c0;border-color:#1565c0;color:#fff}.btn-primary:hover:not(:disabled){background:#0d47a1}.btn-back{background:transparent;border-color:#c5cdd6;color:#1565c0}.btn-back:hover:not(:disabled){background:#eef2f6;color:#0d47a1}.btn-danger{color:#b71c1c;border-color:#ef9a9a}.btn-danger:hover:not(:disabled){background:#ffebee}.btn-icon{min-width:2rem;padding:.35rem .55rem;font-size:1.1rem;line-height:1}.card{background:#fff;border:1px solid #dde3ea;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem 1rem}.form-field{display:flex;flex-direction:column;gap:.25rem}.form-field label{font-size:.85rem;color:#555}.form-field input,.form-field select,.form-field textarea{font:inherit;padding:.45rem .6rem;border:1px solid #c5cdd6;border-radius:6px}.form-field--full{grid-column:1 / -1}.data-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #dde3ea;border-radius:8px;overflow:hidden}.data-table th,.data-table td{padding:.6rem .75rem;border-bottom:1px solid #eef2f6;text-align:left;vertical-align:middle}.data-table th{background:#f8fafc;font-size:.85rem;color:#555}.data-table tr:last-child td{border-bottom:none}.preview-svg{width:48px;height:48px;border:1px solid #dde3ea;border-radius:4px;background:#fff;overflow:hidden}.preview-svg svg{width:100%;height:100%}.order-previews-col{width:1%;white-space:nowrap}.order-previews{display:inline-flex;align-items:center;gap:4px}.order-previews__thumb{flex-shrink:0}.order-previews__svg{width:36px;height:36px}.order-previews__placeholder{width:36px;height:36px;border:1px solid #dde3ea;border-radius:4px;background:#f5f7fa}.order-previews__more{flex-shrink:0;min-width:36px;height:36px;padding:0 4px;display:flex;align-items:center;justify-content:center;border:1px dashed #b0bec5;border-radius:4px;background:#eceff1;font-size:.7rem;font-weight:600;color:#546e7a;line-height:1}.order-previews-empty{color:#999}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;background:#e3f2fd;color:#1565c0}.badge-muted{background:#eceff1;color:#607d8b}.error-banner{background:#ffebee;color:#b71c1c;border:1px solid #ef9a9a;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.app-shell:has(.contour-editor){height:100vh;height:100dvh;overflow:hidden}.app-main:has(.contour-editor){max-width:1440px;width:100%;margin:0 auto;padding:.75rem 1rem 1rem;display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.contour-editor{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.contour-editor-toolbar{flex-wrap:wrap;gap:.75rem}.toolbar-panel{display:flex;align-items:center;gap:.35rem;padding:.2rem .35rem .2rem .5rem;border:1px solid #dde3ea;border-radius:8px;background:#f8fafc}.toolbar-panel__label{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#78909c;padding-right:.25rem;-webkit-user-select:none;user-select:none}.toolbar-panel__actions{display:flex;flex-wrap:wrap;gap:.35rem}.toolbar-panel .btn{padding:.35rem .7rem;font-size:.9rem}.contour-editor-header{margin-bottom:.75rem}.contour-editor-header .page-title{margin:0;font-size:1.25rem}.contour-editor-header .page-subtitle{margin:.25rem 0 0;font-size:.9rem;color:#666}.contour-editor-workspace{display:flex;flex:1;min-height:0;gap:.75rem;overflow:hidden}.item-params-panel{flex:0 0 min(360px,38vw);min-width:280px;display:flex;flex-direction:column;min-height:0;overflow:auto;border:1px solid #dde3ea;border-radius:8px;background:#fff;padding:.75rem 1rem 1rem}.item-params-panel--hidden{display:none}.item-params-panel__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.item-params-panel__title{margin:0;font-size:1rem;font-weight:600}.item-params-panel__hint{margin:0;color:#666}.item-params-panel__actions{margin-top:1rem}.item-params-panel-tab{flex:0 0 auto;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;width:2.25rem;padding:.5rem .25rem;border:1px solid #dde3ea;border-radius:8px;background:#f8fafc;color:#1565c0;cursor:pointer;font:inherit;font-size:.8rem}.item-params-panel-tab:hover{background:#eef2f6}.item-params-panel-tab__label{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.02em}.item-params-panel-tab__chevron{font-size:1rem;line-height:1}.item-form-meta{margin:0;color:#666;font-size:.9rem}.item-preview-svg{margin-top:.5rem;width:min(280px,100%);height:200px;border:1px solid #dde3ea;border-radius:6px;background:#fff;overflow:hidden}.item-preview-svg svg{width:100%;height:100%;display:block}.contour-editor-workspace .contour-frame{flex:1;min-width:0}.contour-frame{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;border:1px solid #dde3ea;border-radius:8px;background:#fff;overflow:hidden}.contour-frame iframe{flex:1;min-height:0;width:100%;border:none;border-radius:8px}.actions-cell{display:flex;gap:.35rem;flex-wrap:wrap}.orders-page{max-width:none}.orders-layout{display:flex;gap:1rem;align-items:flex-start}.orders-folders{flex:0 0 260px;min-width:220px}.orders-main{flex:1;min-width:0}.folder-tree{background:#fff;border:1px solid #dde3ea;border-radius:8px;padding:.75rem}.folder-tree__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.folder-tree__title{font-size:.85rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.04em}.folder-tree__list{list-style:none;margin:0;padding:0}.folder-tree__virtual,.folder-tree__item{display:flex;align-items:center;gap:.25rem;width:100%;border-radius:6px}.folder-tree__virtual{border:none;background:transparent;padding:.35rem .5rem;cursor:pointer;font:inherit;text-align:left;color:inherit}.folder-tree__virtual:hover,.folder-tree__item:hover{background:#f4f7fa}.folder-tree__virtual--selected,.folder-tree__item--selected{background:#e3f2fd}.folder-tree__virtual--drop-target,.folder-tree__item--drop-target{outline:2px dashed #1565c0;outline-offset:-2px;background:#e8f4fd}.folder-tree__item{margin-bottom:.15rem;padding:.2rem .35rem .2rem 0}.folder-tree__toggle{flex:0 0 1.25rem;border:none;background:transparent;color:#78909c;cursor:pointer;font:inherit;padding:0}.folder-tree__label{flex:1;display:flex;align-items:center;gap:.35rem;min-width:0;border:none;background:transparent;padding:.15rem 0;cursor:pointer;font:inherit;text-align:left;color:inherit}.folder-tree__icon{flex:0 0 auto;font-size:.95rem}.folder-tree__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-tree__count{flex:0 0 auto;font-size:.75rem;color:#78909c;background:#eceff1;border-radius:999px;padding:.05rem .45rem}.folder-tree__delete{opacity:0;color:#b71c1c;border-color:transparent;background:transparent}.folder-tree__item:hover .folder-tree__delete,.folder-tree__item--selected .folder-tree__delete{opacity:1}.folder-tree__rename{flex:1;min-width:0;font:inherit;padding:.15rem .35rem;border:1px solid #c5cdd6;border-radius:4px}.folder-tree__children{list-style:none;margin:0;padding:0}.folder-tree__hint{margin:.75rem 0 0;font-size:.75rem;color:#78909c;line-height:1.35}.order-row__handle{width:1.5rem;color:#90a4ae;cursor:grab;-webkit-user-select:none;user-select:none;text-align:center}.order-row--dragging{opacity:.45}.app-main:has(.orders-page){max-width:1440px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-main:has(.order-detail-page){max-width:1440px}.order-detail-layout{display:flex;gap:1rem;align-items:flex-start}.order-detail-props{flex:0 0 min(360px,32vw);min-width:280px;margin-bottom:0}.order-detail-props .form-grid{grid-template-columns:1fr}.order-detail-items{flex:1;min-width:0}.order-detail-panel-title{margin:0 0 .75rem;font-size:1.1rem;font-weight:600}.order-detail-items-table-wrap{overflow-x:auto}.order-detail-items-placeholder{color:#78909c}@media(max-width:900px){.order-detail-layout{flex-direction:column}.order-detail-props{flex:none;width:100%}}.quick-rect-panel{margin-bottom:1rem;padding:.75rem 1rem;background:linear-gradient(180deg,#f8fbff,#fff);border-color:#c5d9f0}.quick-rect-panel__form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.quick-rect-panel__intro{display:flex;flex-direction:column;gap:.1rem;min-width:9rem;margin-right:.25rem}.quick-rect-panel__title{font-weight:600;font-size:.95rem;color:#1e3a5f}.quick-rect-panel__hint{font-size:.78rem;color:#78909c}.quick-rect-panel__size{display:flex;align-items:center;gap:.35rem}.quick-rect-panel__field input{font:inherit;padding:.45rem .6rem;border:1px solid #c5cdd6;border-radius:6px;width:6.5rem}.quick-rect-panel__field input:focus{outline:2px solid #90caf9;outline-offset:1px;border-color:#1565c0}.quick-rect-panel__formula input{width:min(14rem,100%)}.quick-rect-panel__times{color:#78909c;font-size:1.1rem;line-height:1;-webkit-user-select:none;user-select:none}.quick-rect-panel__unit{font-size:.85rem;color:#78909c;white-space:nowrap}.quick-rect-panel__builder{margin-left:auto}.quick-rect-panel__error{margin:.5rem 0 0;font-size:.85rem;color:#b71c1c}@media(max-width:720px){.quick-rect-panel__builder{margin-left:0;width:100%}}
