.login[data-v-23e29ccd]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--color-bg, #FBF8F4)}.login__card[data-v-23e29ccd]{width:100%;max-width:380px;background:#fff;border-radius:1rem;box-shadow:0 4px 24px #0000000f;overflow:hidden}.login__header[data-v-23e29ccd]{padding:2rem 1.5rem 1.25rem;text-align:center;background:linear-gradient(135deg,var(--color-primary, #8B7355) 0%,var(--color-accent, #E8927C) 100%);color:#fff}.login__brand[data-v-23e29ccd]{font-size:.875rem;font-weight:700;letter-spacing:.04em;opacity:.8;margin-bottom:.25rem}.login__title[data-v-23e29ccd]{font-size:1.25rem;font-weight:700;margin:0}.login__body[data-v-23e29ccd]{padding:1.5rem;display:flex;flex-direction:column;gap:.75rem}.login__label[data-v-23e29ccd]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #8C8579)}.login__input[data-v-23e29ccd]{width:100%;padding:.75rem 1rem;border:1.5px solid var(--color-border, #E8E3DB);border-radius:.75rem;font-size:.9375rem;background:var(--color-bg, #FBF8F4);outline:none;box-sizing:border-box;transition:border-color .2s}.login__input[data-v-23e29ccd]:focus{border-color:var(--color-primary, #8B7355)}.login__error[data-v-23e29ccd]{font-size:.8125rem;color:var(--color-error, #D96B6B);margin:0}.login__btn[data-v-23e29ccd]{padding:.75rem;background:var(--color-primary, #8B7355);color:#fff;border:none;border-radius:.75rem;font-size:.9375rem;font-weight:600;cursor:pointer;transition:opacity .2s}.login__btn[data-v-23e29ccd]:disabled{opacity:.5;cursor:not-allowed}.login__btn[data-v-23e29ccd]:hover:not(:disabled){opacity:.9}.dashboard[data-v-964f7415]{padding:1.5rem;max-width:800px;margin:0 auto}.dashboard__loading[data-v-964f7415],.dashboard__error[data-v-964f7415]{text-align:center;padding:3rem 1rem;color:var(--color-text-secondary, #8C8579)}.dashboard__error[data-v-964f7415]{color:var(--color-error, #D96B6B)}.dashboard__retry[data-v-964f7415]{display:inline-block;margin-top:.75rem;padding:.5rem 1.25rem;border:1px solid var(--color-border, #E8E3DB);border-radius:.5rem;background:#fff;cursor:pointer;color:var(--color-text, #2D2A26)}.stats[data-v-964f7415]{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem}.stat-card[data-v-964f7415]{background:#fff;border-radius:.75rem;padding:1.25rem;box-shadow:0 1px 4px #0000000a}.stat-card__value[data-v-964f7415]{font-size:1.75rem;font-weight:700;color:var(--color-text, #2D2A26)}.stat-card__label[data-v-964f7415]{font-size:.75rem;color:var(--color-text-muted, #A39B93);margin-top:.25rem}.section[data-v-964f7415]{background:#fff;border-radius:.75rem;padding:1.25rem;margin-bottom:.75rem;box-shadow:0 1px 4px #0000000a}.section__title[data-v-964f7415]{font-size:.875rem;font-weight:600;color:var(--color-text, #2D2A26);margin:0 0 1rem}.usage-chart[data-v-964f7415]{display:flex;align-items:flex-end;gap:.5rem;height:120px}.usage-bar[data-v-964f7415]{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.usage-bar__fill[data-v-964f7415]{width:100%;max-width:32px;background:linear-gradient(180deg,var(--color-accent, #E8927C),var(--color-primary, #8B7355));border-radius:4px 4px 0 0;min-height:4px;transition:height .3s ease}.usage-bar__count[data-v-964f7415]{font-size:.6875rem;font-weight:600;color:var(--color-text, #2D2A26);margin-top:.25rem}.usage-bar__date[data-v-964f7415]{font-size:.625rem;color:var(--color-text-muted, #A39B93)}.dist-list[data-v-964f7415]{display:flex;flex-direction:column;gap:.5rem}.dist-item[data-v-964f7415]{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--color-border, #E8E3DB);font-size:.8125rem}.dist-item[data-v-964f7415]:last-child{border-bottom:none}.dist-item__name[data-v-964f7415]{color:var(--color-text, #2D2A26)}.dist-item__count[data-v-964f7415]{font-weight:600;color:var(--color-primary, #8B7355)}.code-summary[data-v-964f7415]{display:flex;gap:1.5rem;font-size:.8125rem;color:var(--color-text-secondary, #8C8579)}.codes[data-v-6487f625]{padding:1.5rem;max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:.75rem}.panel[data-v-6487f625]{background:#fff;border-radius:.75rem;padding:1.25rem;box-shadow:0 1px 4px #0000000a}.panel__title[data-v-6487f625]{font-size:.875rem;font-weight:600;color:var(--color-text, #2D2A26);margin:0 0 1rem}.panel__loading[data-v-6487f625]{text-align:center;padding:2rem;color:var(--color-text-muted, #A39B93)}.create-form__row[data-v-6487f625]{display:flex;gap:.75rem;align-items:flex-end;margin-bottom:.75rem;flex-wrap:wrap}.field[data-v-6487f625]{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:120px}.field--wide[data-v-6487f625]{flex:2}.field__label[data-v-6487f625]{font-size:.6875rem;font-weight:500;color:var(--color-text-muted, #A39B93);text-transform:uppercase;letter-spacing:.04em}.field__input[data-v-6487f625]{padding:.5rem .75rem;border:1.5px solid var(--color-border, #E8E3DB);border-radius:.5rem;font-size:.8125rem;background:var(--color-bg, #FBF8F4);outline:none;box-sizing:border-box}.field__input[data-v-6487f625]:focus{border-color:var(--color-primary, #8B7355)}.field__input--sm[data-v-6487f625]{max-width:100px}.btn[data-v-6487f625]{padding:.5rem 1rem;border:1.5px solid var(--color-border, #E8E3DB);border-radius:.5rem;background:#fff;font-size:.8125rem;font-weight:500;cursor:pointer;color:var(--color-text, #2D2A26);white-space:nowrap;transition:all .15s}.btn[data-v-6487f625]:disabled{opacity:.4;cursor:not-allowed}.btn--primary[data-v-6487f625]{background:var(--color-primary, #8B7355);color:#fff;border-color:var(--color-primary, #8B7355)}.btn--primary[data-v-6487f625]:hover:not(:disabled){opacity:.9}.btn--sm[data-v-6487f625]{padding:.35rem .75rem;font-size:.75rem}.btn--ghost[data-v-6487f625]{border:none;background:none;color:var(--color-primary, #8B7355);padding:.25rem .5rem}.btn--ghost[data-v-6487f625]:hover{background:var(--color-bg, #FBF8F4)}.generated[data-v-6487f625]{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border, #E8E3DB)}.generated__header[data-v-6487f625]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.generated__count[data-v-6487f625]{font-size:.8125rem;font-weight:500;color:var(--color-success, #6BAE8E)}.generated__list[data-v-6487f625]{display:flex;flex-wrap:wrap;gap:.5rem}.generated__code[data-v-6487f625]{padding:.35rem .75rem;background:var(--color-bg, #FBF8F4);border:1px solid var(--color-border, #E8E3DB);border-radius:.375rem;font-family:monospace;font-size:.8125rem;cursor:pointer;transition:all .15s}.generated__code[data-v-6487f625]:hover{border-color:var(--color-primary, #8B7355)}.generated__code--copied[data-v-6487f625]{background:var(--color-success, #6BAE8E);color:#fff;border-color:var(--color-success, #6BAE8E)}.table-wrap[data-v-6487f625]{overflow-x:auto}.table[data-v-6487f625]{width:100%;border-collapse:collapse;font-size:.8125rem}.table th[data-v-6487f625]{text-align:left;padding:.5rem .75rem;font-weight:500;font-size:.6875rem;color:var(--color-text-muted, #A39B93);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border, #E8E3DB)}.table td[data-v-6487f625]{padding:.625rem .75rem;border-bottom:1px solid var(--color-border, #E8E3DB);color:var(--color-text, #2D2A26)}.row--inactive td[data-v-6487f625]{opacity:.45}.td--date[data-v-6487f625]{font-size:.75rem;color:var(--color-text-muted, #A39B93);white-space:nowrap}.code-text[data-v-6487f625]{font-family:monospace;cursor:pointer;position:relative}.code-text[data-v-6487f625]:hover{color:var(--color-primary, #8B7355)}.code-text__copied[data-v-6487f625]{position:absolute;top:-1.5rem;left:0;font-size:.625rem;background:var(--color-text, #2D2A26);color:#fff;padding:.15rem .4rem;border-radius:.25rem;font-family:sans-serif;white-space:nowrap}.code-notes[data-v-6487f625]{font-size:.6875rem;color:var(--color-text-muted, #A39B93);margin-top:.15rem}.badge[data-v-6487f625]{display:inline-block;padding:.15rem .5rem;border-radius:9999px;font-size:.6875rem;font-weight:500}.badge--active[data-v-6487f625]{background:#6bae8e1f;color:var(--color-success, #6BAE8E)}.badge--inactive[data-v-6487f625]{background:#d96b6b1f;color:var(--color-error, #D96B6B)}.pager[data-v-6487f625]{display:flex;align-items:center;justify-content:center;gap:1rem;padding-top:1rem}.pager__info[data-v-6487f625]{font-size:.75rem;color:var(--color-text-muted, #A39B93)}.error-text[data-v-6487f625]{font-size:.8125rem;color:var(--color-error, #D96B6B);margin:0}.admin[data-v-47091c2a]{min-height:100vh;background:var(--color-bg, #FBF8F4)}.admin-header[data-v-47091c2a]{display:flex;align-items:center;padding:0 1.5rem;height:52px;background:#fff;border-bottom:1px solid var(--color-border, #E8E3DB);gap:1.5rem}.admin-header__left[data-v-47091c2a]{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.admin-header__brand[data-v-47091c2a]{font-size:.875rem;font-weight:700;color:var(--color-primary, #8B7355)}.admin-header__divider[data-v-47091c2a]{color:var(--color-border, #E8E3DB)}.admin-header__title[data-v-47091c2a]{font-size:.875rem;font-weight:500;color:var(--color-text-secondary, #8C8579)}.admin-nav[data-v-47091c2a]{display:flex;gap:.25rem;flex:1}.admin-nav__tab[data-v-47091c2a]{padding:.375rem .875rem;border:none;background:none;font-size:.8125rem;font-weight:500;color:var(--color-text-muted, #A39B93);cursor:pointer;border-radius:.375rem;transition:all .15s}.admin-nav__tab[data-v-47091c2a]:hover,.admin-nav__tab--active[data-v-47091c2a]{background:var(--color-bg, #FBF8F4);color:var(--color-text, #2D2A26)}.admin-header__logout[data-v-47091c2a]{flex-shrink:0;padding:.35rem .75rem;border:1px solid var(--color-border, #E8E3DB);border-radius:.375rem;background:none;font-size:.75rem;color:var(--color-text-muted, #A39B93);cursor:pointer;transition:all .15s}.admin-header__logout[data-v-47091c2a]:hover{border-color:var(--color-error, #D96B6B);color:var(--color-error, #D96B6B)}.admin-main[data-v-47091c2a]{padding-top:.5rem}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{text-decoration:none;color:inherit}button{background:none;border:none;cursor:pointer}hr{border:none;border-top:1px solid currentColor}textarea{resize:vertical}table{border-collapse:collapse}:root{--color-primary: #8B7355;--color-primary-light: #B09A7A;--color-accent: #E8927C;--color-accent-hover: #D97A62;--color-accent-light: #FDF3EF;--color-bg: #FBF8F4;--color-bg-card: #FFFFFF;--color-bg-hover: #F5EDE8;--color-text: #2D2A26;--color-text-secondary: #8C8579;--color-text-muted: #A39B93;--color-text-light: #B5AFA8;--color-border: #E8E3DB;--color-success: #6BAE8E;--color-error: #D96B6B;--likert-disagree: #9B72CF;--likert-agree: #4CAF50;--likert-neutral: #C8C8C8;--font-sans: "PingFang SC", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--max-width-content: 420px}body{font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text);background-color:var(--color-bg);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:var(--space-4)}h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:var(--space-3)}h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);margin-bottom:var(--space-3)}p{line-height:var(--line-height-relaxed);margin-bottom:var(--space-4)}p:last-child{margin-bottom:0}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-light)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);user-select:none;-webkit-user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-accent);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--color-accent-hover);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){background-color:var(--color-accent-hover);box-shadow:none;transform:translateY(1px)}.container{width:100%;max-width:var(--max-width-content);margin-left:auto;margin-right:auto;padding-left:var(--space-5);padding-right:var(--space-5)}
