:root{--paper: #f2f2f7;--paper-raised: #ffffff;--paper-deep: #e9e9ee;--ink: #1c1c1e;--ink-soft: #6e6e73;--ink-faint: #8e8e93;--accent: #007aff;--accent-pale: #e5f1ff;--moss: #30b0c7;--moss-pale: #e7f7fa;--gold-pale: #fff3df;--violet: #af52de;--violet-pale: #f5eafb;--danger: #ff3b30;--danger-pale: #ffebe9;--line: #e5e5ea;--line-strong: #d1d1d6;--radius-sm: .625rem;--radius-md: .8125rem;--radius-lg: 1rem;--shadow-card: none;--shadow-float: 0 18px 54px rgb(0 0 0 / 18%);--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Noto Sans SC Variable", "PingFang SC", sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Noto Sans SC Variable", "PingFang SC", sans-serif;--font-numeric: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Noto Sans SC Variable", sans-serif;--content-width: 46rem}*{box-sizing:border-box}html{background:var(--paper);color-scheme:light}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;font-family:var(--font-body);font-size:15px;letter-spacing:-.01em;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit;color:inherit}button{-webkit-tap-highlight-color:transparent}a{color:inherit}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.16}#app{min-height:100vh;min-height:100dvh}.page-shell{width:min(100%,var(--content-width));margin:0 auto;padding:calc(1rem + env(safe-area-inset-top)) clamp(1rem,4vw,2rem) calc(6.5rem + env(safe-area-inset-bottom))}.auth-shell{width:min(100%,30rem);min-height:100vh;min-height:100dvh;margin:0 auto;padding:calc(clamp(2rem,9vw,4.5rem) + env(safe-area-inset-top)) clamp(1.15rem,6vw,2rem) calc(2rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:center}.card{position:relative;border:0;border-radius:var(--radius-lg);background:var(--paper-raised);box-shadow:var(--shadow-card)}.paper-card{position:relative;overflow:hidden}.section{margin-top:1.65rem}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:1.8rem;margin-bottom:.55rem;padding:0 .2rem}.section-heading h2{margin:0;font-size:1.28rem;font-weight:600;letter-spacing:-.035em}.section-heading a,.text-link{color:var(--accent);font-size:.9rem;font-weight:500;text-decoration:none}.field{display:grid;gap:.42rem;margin-bottom:1rem}.field>label,.field-label{font-size:.82rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}.field-hint{margin:0;color:var(--ink-faint);font-size:.74rem;line-height:1.45}.input,.select,.textarea{width:100%;min-height:3rem;padding:.72rem .9rem;border:1px solid transparent;border-radius:.7rem;background:var(--paper);color:var(--ink);outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #007aff24}.input::placeholder,.textarea::placeholder{color:var(--ink-faint)}.textarea{min-height:6rem;resize:vertical}.input--number{font-family:var(--font-numeric);font-size:2.15rem;font-weight:600;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.035em}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.inline-unit{display:flex;align-items:center;gap:.6rem}.inline-unit .input{flex:1}.unit-label{color:var(--ink-soft);font-size:.82rem;white-space:nowrap}.tag{display:inline-flex;align-items:center;gap:.28rem;padding:.16rem .5rem;border-radius:999px;background:var(--paper-deep);color:var(--ink-soft);font-size:.68rem;font-weight:600}.tag--accent{background:var(--moss-pale);color:#087f91}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.form-error{margin:0 0 1rem;padding:.75rem .85rem;border-radius:var(--radius-sm);background:var(--danger-pale);color:var(--danger);font-size:.8rem;line-height:1.55}.form-actions{display:flex;gap:.65rem;margin-top:1.35rem}.form-actions>*{flex:1}.divider{height:1px;margin:1rem 0;border:0;background:var(--line)}.skeleton{border-radius:var(--radius-lg);background:linear-gradient(100deg,var(--paper-deep) 20%,var(--paper-raised) 40%,var(--paper-deep) 60%);background-size:220% 100%;animation:shimmer 1.5s infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body.dialog-open{overflow:hidden}@keyframes shimmer{to{background-position:-120% 0}}@media(min-width:800px){.page-shell{padding-top:1.8rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
