:root{--color-bg: #fbf8f3;--color-surface: #ffffff;--color-surface-sunken: #f3eee4;--color-text-primary: #2b2520;--color-text-secondary: #6e655c;--color-text-on-accent: #ffffff;--color-accent: #b25640;--color-accent-hover: #9c4735;--color-accent-active: #863c2d;--color-accent-soft: #e07a5f;--color-accent-tint: #fbeae3;--color-success: #4f7a4b;--color-success-tint: #eef3ed;--color-warning: #8a6423;--color-warning-solid: #d9a441;--color-warning-tint: #fbf3e3;--color-error: #b04b3e;--color-error-tint: #f8eae7;--color-border: #e8e0d5;--color-border-strong: #d8cdbc;--color-overlay: rgba(43, 37, 32, .4);--color-tile-1: var(--color-accent-soft);--color-tile-2: #7a9b76;--color-tile-3: var(--color-warning-solid);--color-tile-4: #7c93aa;--font-family: "General Sans", "S\f6hne", "Inter", system-ui, -apple-system, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 20px;--font-size-xl: 28px;--font-size-2xl: 40px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--line-height-tight: 1.2;--line-height-normal: 1.5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 8px;--radius-md: 12px;--radius-full: 999px;--shadow-sm: 0 1px 3px rgba(43, 37, 32, .06);--shadow-md: 0 4px 16px rgba(43, 37, 32, .1);--motion-pulse: 1.2s;--motion-fast: .1s;--motion-base: .15s;--easing-standard: ease;--easing-emphasis: ease-in-out;--z-sticky: 10;--z-nav: 100;--z-dialog: 1000;--bottom-nav-height: 60px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;padding:var(--space-3) var(--space-5);border:1px solid transparent;border-radius:var(--radius-full);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);cursor:pointer;box-sizing:border-box;transition:background var(--motion-base) var(--easing-standard),border-color var(--motion-base) var(--easing-standard),color var(--motion-base) var(--easing-standard),transform var(--motion-fast) var(--easing-emphasis)}.btn:active:not(:disabled){transform:scale(.98)}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn-sm{min-height:32px;padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.btn-lg{min-height:48px;padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.btn-block{width:100%}.btn-primary{background:var(--color-accent);color:var(--color-text-on-accent)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-primary:active:not(:disabled){background:var(--color-accent-active)}.btn-secondary{background:transparent;border-color:var(--color-border-strong);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-sunken)}.btn-tertiary{min-height:0;padding:0;border:none;background:none;color:var(--color-text-secondary)}.btn-tertiary:hover:not(:disabled){color:var(--color-text-primary);text-decoration:underline}.btn-destructive{background:var(--color-error);color:var(--color-text-on-accent)}.btn-destructive:hover:not(:disabled){filter:brightness(.92)}.btn:disabled{cursor:default;opacity:.4}.btn:disabled.is-busy{opacity:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);font-family:inherit;cursor:pointer;transition:background var(--motion-base) var(--easing-standard),color var(--motion-base) var(--easing-standard)}.icon-btn:hover:not(:disabled){background:var(--color-surface-sunken);color:var(--color-text-primary)}.icon-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.icon-btn:disabled{cursor:default;opacity:.4}.field{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.field>label,.field-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.input,.field input:not([type=checkbox]):not([type=radio]):not([type=file]),.field select,.field textarea,.search-field>input{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text-primary);box-sizing:border-box}.field textarea{resize:vertical;line-height:var(--line-height-normal)}.input::placeholder,.field input::placeholder,.field textarea::placeholder,.search-field>input::placeholder{color:var(--color-text-secondary)}.input:focus-visible,.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,.search-field>input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-color:var(--color-accent);background:var(--color-surface)}.field input:disabled,.field select:disabled,.field textarea:disabled{opacity:.5;cursor:not-allowed}.input.is-invalid,.field input.is-invalid,.field select.is-invalid,.field textarea.is-invalid{border-color:var(--color-error);background:var(--color-surface)}.field-hint{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0}.field-error{font-size:var(--font-size-xs);color:var(--color-error);margin:0}.field>.field-hint,.field>.field-error{margin-top:calc(var(--space-1) - var(--space-2))}.check{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer}.check input[type=checkbox],.check input[type=radio]{width:18px;height:18px;margin:0;accent-color:var(--color-accent);cursor:pointer}.check input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}fieldset.check-group{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);margin:0;padding:0;border:none;min-width:0}fieldset.check-group>legend{float:left;padding:0;margin-right:var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.dialog-form-fields{display:flex;flex-direction:column;gap:var(--space-4)}app-dialog-shell app-banner{display:block;margin-bottom:var(--space-4)}.dialog-footer .footer-left{margin-right:auto}.search-field{position:relative;display:flex;align-items:center;min-width:0}.search-field>app-icon{position:absolute;left:var(--space-3);color:var(--color-text-secondary);pointer-events:none}.search-field>input{padding-left:calc(var(--space-4) + 20px)}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:-.01em;margin:0}@media(max-width:767px){.page-title{display:none}}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.page-actions{display:flex;align-items:center;gap:var(--space-3)}.page-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-7) 0;margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);margin-top:var(--space-5)}.filter-bar .search-field{flex:1 1 260px;max-width:360px}.result-count{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}@media(min-width:768px){.result-count{margin-left:auto}}.clear-filter,.clear-sort{font-size:var(--font-size-sm)}.clear-sort{display:block;margin-top:var(--space-4)}.table-card{margin-top:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.table-card table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.table-card th{position:sticky;top:0;z-index:var(--z-sticky);padding:var(--space-3) var(--space-4);background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border-strong);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-align:left;white-space:nowrap}.table-card td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text-primary);vertical-align:middle}.table-card tbody tr:last-child td{border-bottom:none}.table-card tbody tr:hover{background:var(--color-surface-sunken)}.card-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-4) 0 0;padding:0}.list-card{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.card-title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin:0}.card-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);margin:var(--space-1) 0 0}.card-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-4);margin-top:var(--space-3)}.table-card .cell-actions{text-align:right;vertical-align:middle;white-space:nowrap}.table-card .cell-actions>*+*{margin-left:var(--space-4)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background:var(--color-bg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
