:root{--color-950: #12210C;--color-800: #1F3D16;--color-600: #3C7830;--color-400: #8A5A22;--color-100: #EEF3E1;--color-white: #ffffff;--color-ink: #14210D;--color-ink-muted: #5B6350;--color-bg: #FBF8EC;--color-border: #E6E0CC;--color-warning: #c98a1f;--color-warning-bg: #fdf6ec;--color-error: #c94f3d;--color-error-bg: #fdeeee;--color-success: #3AA76D;--color-success-bg: #eaf7ef;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--shadow-sm: 0 1px 3px rgba(18, 33, 12, .08);--shadow-md: 0 4px 12px rgba(18, 33, 12, .08);--shadow-lg: 0 10px 25px rgba(18, 33, 12, .12);--transition: all .2s ease-in-out}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--color-bg);color:var(--color-ink);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}h1,h2,h3,h4{color:var(--color-950);font-weight:700;line-height:1.25}h1{font-size:1.6rem}h2{font-size:1.35rem}h3{font-size:1.15rem}h4{font-size:1rem}p{color:var(--color-ink)}a{color:var(--color-600);text-decoration:none;font-weight:500}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;font-size:.95rem;font-weight:600;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:var(--transition);text-align:center}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background-color:var(--color-600);color:var(--color-white)}.btn-primary:hover:not(:disabled){background-color:var(--color-800)}.btn-secondary{background-color:var(--color-100);color:var(--color-950)}.btn-secondary:hover:not(:disabled){background-color:var(--color-400);color:var(--color-white)}.btn-outline{background-color:transparent;border-color:var(--color-600);color:var(--color-600)}.btn-outline:hover:not(:disabled){background-color:var(--color-600);color:var(--color-white)}.btn-danger{background-color:var(--color-error);color:var(--color-white)}.btn-danger:hover:not(:disabled){background-color:#a83d2e}.btn-block{width:100%}.card{background-color:var(--color-white);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:18px;box-shadow:var(--shadow-sm);transition:var(--transition)}.card-hover:hover{box-shadow:var(--shadow-md);border-color:var(--color-400)}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:600;line-height:1}.badge-confirmed,.badge-active{background-color:var(--color-100);color:var(--color-800)}.badge-pending{background-color:var(--color-warning-bg);color:var(--color-warning);border:1px solid rgba(201,138,31,.25)}.badge-error{background-color:var(--color-error-bg);color:var(--color-error);border:1px solid rgba(201,79,61,.25)}.badge-info{background-color:#e9eff1;color:var(--color-950)}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-label{font-size:.88rem;font-weight:600;color:var(--color-950)}.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;font-size:.95rem;color:var(--color-ink);background-color:var(--color-white);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);transition:var(--transition);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-600);box-shadow:0 0 0 3px #3c783033}.form-textarea{resize:vertical;min-height:100px}.checkbox-label{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;color:var(--color-ink);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{accent-color:var(--color-600);width:18px;height:18px;margin-top:2px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#12210ca6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-content{background:var(--color-white);border-radius:var(--radius-lg);max-width:480px;width:100%;padding:24px;box-shadow:var(--shadow-lg);animation:modalPop .25s cubic-bezier(.16,1,.3,1)}@keyframes modalPop{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
