:root{--bg: #f5f6f3;--surface: #ffffff;--surface-2: #fbfcfa;--ink: #15201a;--muted: #6c736b;--line: #e3e7e0;--line-strong: #d2d8cf;--moos: #3a6b35;--moos-hover: #2f5a2b;--moos-soft: #eaf1e7;--rost: #a83a2c;--radius: 10px;--radius-sm: 7px;--shadow: 0 1px 2px rgba(21, 32, 26, .05), 0 6px 20px rgba(21, 32, 26, .04);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.btn{font-family:inherit;font-size:.9rem;font-weight:600;border:1px solid transparent;border-radius:var(--radius-sm);padding:.5rem .9rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--moos);color:#fff}.btn-primary:not(:disabled):hover{background:var(--moos-hover)}.btn-ghost{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-ghost:not(:disabled):hover{border-color:var(--moos);color:var(--moos)}.btn-block{width:100%}.btn-sm{padding:.35rem .7rem;font-size:.82rem}.btn-icon{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:.9rem;line-height:1;padding:.3rem .4rem;border-radius:5px;transition:background .15s ease,color .15s ease}.btn-icon:not(:disabled):hover{background:var(--moos-soft);color:var(--moos)}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.btn-icon.danger:not(:disabled):hover{background:#f7e7e4;color:var(--rost)}.login-screen{min-height:100%;display:grid;place-items:center;padding:1.5rem}.login-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem 1.6rem;display:flex;flex-direction:column;gap:.85rem}.login-mark{width:46px;height:46px;border-radius:12px;background:var(--moos);color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:-.02em;margin-bottom:.3rem}.login-title{margin:0;font-size:1.4rem;letter-spacing:-.02em}.login-sub{margin:-.4rem 0 .6rem;color:var(--muted);font-size:.88rem}.field{display:flex;flex-direction:column;gap:.3rem}.field-label{font-size:.8rem;font-weight:600;color:var(--muted)}.login-error{margin:0;color:var(--rost);font-size:.85rem}input,select{font-family:inherit;font-size:.9rem;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.5rem .6rem}input:focus,select:focus,.btn:focus-visible,.btn-icon:focus-visible,.tab:focus-visible,.chip:focus-visible{outline:2px solid var(--moos);outline-offset:1px}.app{min-height:100%;display:flex;flex-direction:column}.topbar{background:var(--surface);border-bottom:1px solid var(--line);padding:.6rem 1.1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:.55rem}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--moos);color:#fff;display:grid;place-items:center;font-weight:800;font-size:.82rem;letter-spacing:-.02em}.brand-name{font-weight:700;letter-spacing:-.01em}.tabs{display:flex;gap:.25rem;margin-left:.5rem}.tab{font-family:inherit;font-size:.9rem;font-weight:600;color:var(--muted);background:transparent;border:none;border-radius:var(--radius-sm);padding:.45rem .8rem;cursor:pointer;transition:background .15s ease,color .15s ease}.tab:hover{color:var(--ink)}.tab.is-active{background:var(--moos-soft);color:var(--moos)}.user{margin-left:auto;display:flex;align-items:center;gap:.7rem}.user-name{font-size:.85rem;color:var(--muted)}.content{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:1.4rem 1.1rem 2.5rem}.loading{color:var(--muted);padding:2rem 0}.banner{border-radius:var(--radius-sm);padding:.7rem .9rem;font-size:.88rem;margin-bottom:1rem}.banner-error{background:#f7e7e4;color:var(--rost)}.appfoot{text-align:center;color:var(--muted);font-size:.78rem;padding:1rem;border-top:1px solid var(--line);background:var(--surface)}.toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.8rem}.search{min-width:180px;flex:0 1 240px}.filter-group{display:flex;gap:.3rem}.chip{font-family:inherit;font-size:.82rem;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--line-strong);border-radius:999px;padding:.35rem .75rem;cursor:pointer;transition:all .15s ease}.chip:hover{border-color:var(--moos);color:var(--moos)}.chip.is-active{background:var(--moos);border-color:var(--moos);color:#fff}.add-bar{display:flex;gap:.5rem;flex-wrap:wrap;background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:var(--radius-sm);padding:.6rem;margin-bottom:1rem}.add-input{flex:1 1 130px;min-width:110px}.add-input.wide{flex:1 1 280px}.add-select{flex:0 0 auto}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.member-table{width:100%;border-collapse:collapse;font-size:.88rem}.member-table thead th{position:sticky;top:0;background:var(--surface-2);text-align:left;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.65rem .6rem;border-bottom:1px solid var(--line-strong);white-space:nowrap}.member-table tbody td{padding:.35rem .5rem;border-bottom:1px solid var(--line);vertical-align:middle}.member-table tbody tr:last-child td{border-bottom:none}.member-table tbody tr:hover{background:var(--surface-2)}.row-error{background:#fbeeeb!important}.col-size,.cell-size{text-align:center}.cell-name{display:flex;gap:.35rem;min-width:230px}.cell-input{width:100%;border:1px solid transparent;background:transparent;border-radius:5px;padding:.38rem .45rem}.cell-input:hover{border-color:var(--line-strong)}.cell-input:focus{background:var(--surface);border-color:var(--moos)}.cell-note .cell-input{min-width:130px}.schnitt-select{padding:.38rem .4rem;font-size:.84rem}.size-select{text-align:center;min-width:64px;padding:.38rem .3rem;font-weight:600;color:var(--muted);border-color:var(--line)}.size-select.is-set{color:var(--ink);border-color:var(--line-strong);background:var(--moos-soft)}.cell-meta{white-space:nowrap}.meta-author{font-size:.78rem;color:var(--muted)}.save-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-left:.4rem;vertical-align:middle;background:transparent;transition:background .2s ease}.save-saving{background:#d9b24a}.save-saved{background:var(--moos)}.save-error{background:var(--rost)}.cell-action{text-align:right}.table-empty{text-align:center;color:var(--muted);padding:1.5rem;font-size:.9rem}.table-count{margin:.7rem 0 0;font-size:.8rem;color:var(--muted)}.empty-state{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2.2rem 1.6rem;text-align:center;box-shadow:var(--shadow)}.empty-title{margin:0 0 .4rem;font-weight:700;font-size:1.05rem}.empty-text{margin:0 auto;max-width:460px;color:var(--muted);line-height:1.5}.summary-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem}.summary-title{margin:0;font-size:1.25rem;letter-spacing:-.02em}.summary-sub{margin:.3rem 0 0;color:var(--muted);font-size:.88rem;max-width:540px;line-height:1.5}.ticket-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.ticket{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}.ticket-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:.7rem;margin-bottom:.7rem;border-bottom:2px solid var(--moos-soft)}.ticket-name{font-weight:700;font-size:1.02rem;letter-spacing:-.01em}.ticket-total{font-variant-numeric:tabular-nums;font-weight:800;font-size:1.3rem;color:var(--moos);letter-spacing:-.02em}.ticket-row{display:flex;gap:.6rem;padding:.4rem 0;align-items:baseline}.ticket-schnitt{flex:0 0 96px;font-size:.78rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.ticket-sizes{display:flex;flex-wrap:wrap;gap:.35rem}.size-pill{display:inline-flex;align-items:baseline;gap:.25rem;background:var(--moos-soft);border-radius:6px;padding:.2rem .5rem;font-size:.84rem;font-weight:600;font-variant-numeric:tabular-nums}.size-pill-count{color:var(--moos);font-weight:800}.ticket-empty{margin:0;color:var(--muted);font-size:.85rem;font-style:italic}.settings-panel{max-width:620px}.garment-list{list-style:none;margin:1.1rem 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.garment-item{display:flex;align-items:center;gap:.6rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.5rem .7rem}.garment-order{display:flex;flex-direction:column;gap:.1rem}.garment-order .btn-icon{padding:.05rem .35rem;font-size:.75rem}.garment-input{flex:1;border-color:transparent;background:transparent}.garment-input:hover{border-color:var(--line-strong)}.garment-input:focus{background:var(--surface-2);border-color:var(--moos)}@media(max-width:720px){.topbar{gap:.5rem}.tabs{order:3;width:100%;margin-left:0;overflow-x:auto}.user{margin-left:auto}.summary-head{flex-direction:column}.ticket-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
