*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}:root{--coral:#ff6b6b;--coral-light:#ffe8e8;--coral-dim:#ff9090;--bg:#f8f9fa;--white:#fff;--text:#222;--text-sub:#888;--text-muted:#bbb;--border:#f0f0f0;--shadow:0 2px 12px #0000000f;--radius:18px;--bottom-nav-height:64px}html,body,#root{width:100%;height:100%}body{color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;background:#ededed;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,sans-serif}#root{justify-content:center;display:flex}.app-shell{background:var(--bg);flex-direction:column;width:100%;max-width:430px;min-height:100%;display:flex;position:relative;box-shadow:0 0 40px #00000026}.app-header{background:var(--white);border-bottom:1px solid var(--border);text-align:center;z-index:30;flex-shrink:0;padding:14px 20px 12px;position:sticky;top:0}.app-header h1{color:var(--text);letter-spacing:-.3px;font-size:18px;font-weight:800}.content{padding-bottom:calc(var(--bottom-nav-height) + 16px);-webkit-overflow-scrolling:touch;flex:1;overflow:hidden auto}.content::-webkit-scrollbar{display:none}.bottom-nav{background:var(--white);border-top:1px solid var(--border);width:100%;max-width:430px;height:var(--bottom-nav-height);padding-bottom:env(safe-area-inset-bottom);z-index:50;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:8px 0;display:flex}.nav-btn .nav-icon{font-size:22px;line-height:1}.nav-btn .nav-label{color:var(--text-muted);font-size:10px;font-weight:500}.nav-btn.active .nav-label{color:var(--coral);font-weight:700}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);margin:12px 14px 0;padding:18px}.fab{bottom:calc(var(--bottom-nav-height) + 16px);background:var(--coral);color:#fff;cursor:pointer;z-index:40;border:none;border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;font-size:28px;display:flex;position:fixed;right:calc(50% - 199px);box-shadow:0 4px 18px #ff6b6b73}.fab:active{transform:scale(.92)}@media (width<=430px){.fab{right:16px}body{background:var(--bg)}.app-shell{box-shadow:none}.bottom-nav{left:0;transform:none}}.btn-primary{background:var(--coral);color:#fff;cursor:pointer;border:none;border-radius:14px;width:100%;padding:15px;font-family:inherit;font-size:16px;font-weight:700;box-shadow:0 4px 14px #ff6b6b59}.btn-primary:active{opacity:.85}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-overlay.center{align-items:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-sheet{background:var(--white);border-radius:24px 24px 0 0;width:100%;max-width:430px;animation:.25s slideUp}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-handle{background:#e0e0e0;border-radius:2px;width:40px;height:4px;margin:12px auto 0}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 20px 12px;display:flex}.modal-title{font-size:17px;font-weight:700}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:20px}.modal-body{padding:16px 20px 24px}.form-group{margin-bottom:12px}.form-label{color:var(--text-sub);margin-bottom:5px;font-size:12px;font-weight:600;display:block}.form-select,.form-input{border:1.5px solid var(--border);width:100%;color:var(--text);background:var(--white);appearance:none;border-radius:12px;outline:none;padding:12px 14px;font-family:inherit;font-size:14px}.form-select:focus,.form-input:focus{border-color:var(--coral)}.select-wrap{position:relative}.select-wrap:after{content:"▾";color:var(--text-muted);pointer-events:none;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.empty-state{text-align:center;color:var(--text-muted);padding:48px 20px}.empty-state .empty-icon{margin-bottom:12px;font-size:48px}.empty-state .empty-text{font-size:15px}.section-spacer{height:80px}
