:root{--accent:#5b6cf9;--accent-2:#7c3aed;--accent-bg:#5b6cf914;--accent-bg2:#5b6cf924;--gradient:linear-gradient(135deg, #5b6cf9 0%, #7c3aed 100%);--gradient-r:linear-gradient(135deg, #7c3aed 0%, #5b6cf9 100%);--cta:#f59e0b;--cta-2:#d97706;--cta-bg:#fffbeb;--cta-bd:#fde68a;--bg:#f7f6f3;--surface:#fff;--surface-2:#f9f8f6;--surface-3:#f2f1ee;--surface-4:#eceae6;--ink:#1a1926;--ink-2:#3d3c55;--ink-3:#7d7c9a;--ink-4:#b4b3c8;--ink-5:#d2d1de;--border:#eae9e4;--border-2:#d9d8d2;--border-3:#c8c7be;--success:#10b981;--success-bg:#ecfdf5;--success-bd:#6ee7b7;--success-dk:#059669;--danger:#ef4444;--danger-bg:#fef2f2;--danger-bd:#fca5a5;--danger-dk:#dc2626;--warning:#f59e0b;--warning-bg:#fffbeb;--warning-bd:#fde68a;--warning-dk:#d97706;--header-bg:linear-gradient(135deg, #4c5ef7 0%, #7c3aed 100%);--header-fg:#fff;--header-h:60px;--r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-2xl:28px;--sh-xs:0 1px 2px #1a19260d;--sh-sm:0 1px 3px #1a192612, 0 1px 2px #1a19260a;--sh-md:0 4px 16px #1a192614, 0 1px 4px #1a19260a;--sh-lg:0 16px 48px #1a19261f, 0 4px 12px #1a19260f;--sh-accent:0 4px 20px #5b6cf940;--sp-xs:4px;--sp-sm:8px;--sp-md:16px;--sp-lg:24px;--sp-xl:40px;--t-fast:.12s ease;--t-base:.2s ease;--t-slow:.3s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;overflow-x:hidden}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;overflow-x:hidden}button{cursor:pointer;font-family:inherit;line-height:inherit}input,textarea,select{font-family:inherit}img{max-width:100%}.participant-badge{border-radius:var(--r-sm);background:var(--accent-bg);color:var(--ink-2);border:1px solid #5b6cf92e;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:9px 14px;font-size:.82rem;display:flex}.btn-change-name{color:var(--accent);cursor:pointer;transition:opacity var(--t-fast);background:0 0;border:none;margin-left:auto;padding:2px 0;font-size:.8rem;font-weight:600}.btn-change-name:hover{opacity:.7}.btn-cancel-nickname{border:1px solid var(--border-2);border-radius:var(--r-sm);color:var(--ink-3);cursor:pointer;transition:all var(--t-fast);background:0 0;margin:8px auto;padding:8px 20px;font-size:.85rem;display:block}.btn-cancel-nickname:hover{border-color:var(--border-3);color:var(--ink-2)}.trip-list-header{margin-bottom:var(--sp-md);justify-content:space-between;align-items:center;display:flex}.trip-list-header h2{color:var(--ink-4);letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:700}.trips{flex-direction:column;gap:8px;list-style:none;display:flex}.trip-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;transition:border-color var(--t-base), box-shadow var(--t-base), transform var(--t-base), background var(--t-base);box-shadow:var(--sh-xs);-webkit-tap-highlight-color:transparent;align-items:stretch;display:flex;overflow:hidden}.trip-card:hover{box-shadow:var(--sh-md), 0 0 0 3px #5b6cf90f;border-color:#5b6cf966;transform:translateY(-2px)}.trip-card:active{box-shadow:var(--sh-xs);transform:translateY(0)}.trip-card:before{content:"";background:var(--gradient);opacity:.5;width:3px;transition:opacity var(--t-base);flex-shrink:0;display:block}.trip-card:hover:before,.trip-card.selected:before{opacity:1}.trip-card.selected{border-color:var(--accent);background:var(--accent-bg);box-shadow:var(--sh-sm), 0 0 0 2px #5b6cf926;transform:none}.trip-card.selected .trip-card-body h3{color:var(--accent)}.trip-card-body{flex:1;min-width:0;padding:13px 14px}.trip-card-body h3{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;transition:color var(--t-fast);margin-bottom:3px;font-size:.93rem;font-weight:700;overflow:hidden}.trip-card-body .description{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:.77rem;line-height:1.4;overflow:hidden}.trip-card-body .dates{color:var(--ink-4);background:var(--surface-3);border:1px solid var(--border);white-space:nowrap;border-radius:99px;align-items:center;gap:4px;padding:2px 8px;font-size:.71rem;display:inline-flex}.btn-delete{color:var(--ink-5);transition:color var(--t-fast), background var(--t-fast);background:0 0;border:none;border-left:1px solid #0000;flex-shrink:0;align-self:stretch;align-items:center;padding:0 12px;font-size:.88rem;display:flex}.btn-delete:hover{color:var(--danger);background:var(--danger-bg);border-left-color:var(--danger-bd)}.empty-state{text-align:center;color:var(--ink-4);padding:48px 16px}.empty-state p:first-child{filter:drop-shadow(0 4px 8px #0000000f);margin-bottom:12px;font-size:2.8rem}.empty-state p{color:var(--ink-3);margin-bottom:20px;font-size:.85rem;line-height:1.8}.loading,.error{text-align:center;color:var(--ink-4);padding:40px;font-size:.85rem}.btn-primary{background:var(--gradient);color:#fff;border-radius:var(--r-md);transition:opacity var(--t-base), transform var(--t-fast), box-shadow var(--t-base);letter-spacing:.02em;cursor:pointer;white-space:nowrap;border:none;flex-shrink:0;padding:9px 18px;font-size:.85rem;font-weight:600;box-shadow:0 2px 10px #5b6cf947}.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}@media (width>=1024px){.trip-card-body{padding:11px 12px}.trip-card-body h3{font-size:.87rem}.trip-card-body .description{margin-bottom:5px;font-size:.74rem}.trip-card-body .dates{font-size:.68rem}.empty-state{padding:32px 12px}.empty-state p:first-child{font-size:2.2rem}}.photo-upload{width:100%}.photo-dropzone{cursor:pointer;background:#fafafa;border:2px dashed #ddd;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:20px;transition:border-color .2s,background .2s;display:flex}.photo-dropzone:hover{background:#f0f0ff;border-color:#667eea}.photo-icon{font-size:1.6rem}.photo-label{color:#667eea;font-size:.88rem;font-weight:600}.photo-hint{color:#bbb;font-size:.76rem}.photo-preview{border-radius:10px;width:100%;max-height:200px;position:relative;overflow:hidden}.photo-preview img{object-fit:cover;width:100%;max-height:200px;display:block}.photo-uploading{color:#fff;background:#00000073;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;display:flex;position:absolute;inset:0}.photo-delete{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:6px;padding:4px 10px;font-size:.8rem;transition:background .2s;position:absolute;top:8px;right:8px}.photo-delete:hover{background:#c80000bf}.photo-error{color:#e74c3c;background:#fef0f0;border-radius:6px;margin-top:6px;padding:6px 10px;font-size:.8rem}.inline-form{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-md);flex-direction:column;gap:10px;margin-bottom:12px;padding:14px;display:flex}.inline-form-row{flex-wrap:wrap;gap:8px;display:flex}.inline-form-row input,.inline-form-row select{border:1.5px solid var(--border-2);border-radius:var(--r-sm);min-width:120px;color:var(--ink);background:var(--surface);outline:none;flex:1;padding:8px 10px;font-size:.86rem;transition:border-color .15s,box-shadow .15s}.inline-form-row input:focus,.inline-form-row select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #667eea1a}.inline-form textarea,.inline-form>input{border:1.5px solid var(--border-2);border-radius:var(--r-sm);resize:vertical;width:100%;color:var(--ink);background:var(--surface);outline:none;padding:8px 10px;font-size:.86rem;transition:border-color .15s,box-shadow .15s}.inline-form textarea:focus,.inline-form>input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #667eea1a}.address-input{border:1.5px solid var(--border-2);border-radius:var(--r-sm);width:100%;color:var(--ink);background:var(--surface);outline:none;padding:8px 10px;font-size:.86rem;transition:border-color .15s,box-shadow .15s}.address-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #667eea1a}.inline-form-actions{justify-content:flex-end;gap:8px;display:flex}.inline-form-actions button{border:1.5px solid var(--border-2);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink-2);padding:7px 14px;font-size:.83rem;font-weight:500;transition:background .15s}.inline-form-actions button:hover{background:var(--border)}.btn-geocode-full{background:var(--surface);border:1.5px solid var(--accent);width:100%;color:var(--accent);border-radius:var(--r-sm);cursor:pointer;text-align:center;padding:9px;font-size:.85rem;font-weight:600;transition:background .15s}.btn-geocode-full:hover:not(:disabled){background:var(--accent-bg)}.btn-geocode-full:disabled{opacity:.4;cursor:not-allowed}.geocode-success{color:var(--success);background:var(--success-bg);border:1px solid var(--success-bd);border-radius:var(--r-sm);padding:6px 10px;font-size:.79rem}.geocode-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-bd);border-radius:var(--r-sm);padding:6px 10px;font-size:.79rem}.currency-converted{color:var(--success);background:var(--success-bg);border:1px solid var(--success-bd);border-radius:var(--r-sm);padding:6px 10px;font-size:.79rem}.btn-save{background:var(--gradient)!important;color:#fff!important;border-color:#0000!important;font-weight:600!important;transition:opacity .2s!important}.btn-save:hover:not(:disabled){opacity:.88!important}.btn-save:disabled{opacity:.5;cursor:not-allowed}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.map-wrapper{border:1px solid #eee;border-radius:12px;margin-bottom:16px;overflow:hidden}.leaflet-map{width:100%;height:300px}.map-empty{text-align:center;color:#bbb;background:#fafafa;border-radius:10px;margin-bottom:16px;padding:20px;font-size:.85rem}.map-popup strong{margin-bottom:4px;font-size:.9rem;display:block}.map-popup p{color:#666;margin:2px 0;font-size:.82rem}.weather-badge{background:var(--accent-bg);color:var(--ink-3);border:1px solid #667eea40;border-radius:20px;align-items:center;gap:4px;margin-top:4px;padding:3px 8px;font-size:.76rem;display:inline-flex}.weather-badge.loading{opacity:.5}.weather-icon{font-size:.88rem}.weather-temp{color:var(--ink);font-weight:600}.weather-precip{color:var(--accent)}.section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.btn-add{border:1.5px solid var(--accent);color:var(--accent);border-radius:var(--r-sm);background:0 0;padding:4px 12px;font-size:.8rem;font-weight:600;transition:background .15s}.btn-add:hover{background:var(--accent-bg)}.dest-items{flex-direction:column;gap:8px;list-style:none;display:flex}.dest-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);align-items:flex-start;gap:12px;padding:12px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.dest-item:hover{border-color:#667eea4d;box-shadow:0 2px 8px #0000000f}.dest-index{background:var(--gradient);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:3px;font-size:.7rem;font-weight:700;display:flex}.dest-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.dest-body strong{color:var(--ink);font-size:.92rem;font-weight:600}.dest-address,.dest-date{color:var(--ink-3);font-size:.78rem}.dest-coords{color:var(--accent);font-size:.75rem}.dest-notes{color:var(--ink-4);margin-top:3px;font-size:.8rem;line-height:1.5}.dest-thumb{object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--border);flex-shrink:0;width:60px;height:60px}.dest-actions{gap:2px;display:flex}.dest-actions button{color:var(--ink-4);opacity:.5;border-radius:var(--r-xs);background:0 0;border:none;padding:2px 5px;font-size:.9rem;transition:opacity .15s,color .15s}.dest-actions button:hover{opacity:1;color:var(--ink)}.empty{text-align:center;color:var(--ink-4);background:var(--surface-2);border:1px dashed var(--border-2);border-radius:var(--r-md);padding:22px;font-size:.86rem}.section-loading{text-align:center;color:var(--ink-4);padding:20px;font-size:.84rem}.btn-map-toggle{border:1.5px solid var(--border-2);color:var(--ink-3);border-radius:var(--r-sm);cursor:pointer;background:0 0;padding:4px 12px;font-size:.8rem;font-weight:500;transition:background .15s,border-color .15s}.btn-map-toggle:hover{background:var(--surface-2);border-color:var(--ink-4)}.expense-type-toggle{gap:6px;margin-bottom:4px;display:flex}.type-btn{border-radius:var(--r-sm);border:1.5px solid var(--border-2);background:var(--surface-2);cursor:pointer;color:var(--ink-4);flex:1;padding:8px 10px;font-size:.83rem;font-weight:600;transition:all .15s}.type-btn.active-shared{background:var(--success-bg);border-color:var(--success-bd);color:var(--success)}.type-btn.active-personal{background:var(--accent-bg);color:var(--accent);border-color:#667eea4d}.type-btn:disabled{opacity:.35;cursor:not-allowed}.nickname-overlay{border-radius:var(--r-xl);-webkit-backdrop-filter:blur(8px);background:#1a192673;justify-content:center;align-items:center;padding:20px;display:flex}.nickname-card{background:var(--surface);border-radius:var(--r-xl);text-align:center;width:100%;max-width:360px;box-shadow:var(--sh-lg), 0 0 0 1px #ffffff14;padding:32px 26px 24px}.nickname-icon{filter:drop-shadow(0 2px 6px #0000001f);margin-bottom:10px;font-size:2.2rem;display:block}.nickname-card h3{color:var(--ink);letter-spacing:-.01em;margin:0 0 8px;font-size:1.05rem;font-weight:700}.nickname-desc{color:var(--ink-3);margin:0 0 18px;font-size:.82rem;line-height:1.75}.nickname-input{border:1.5px solid var(--border-2);border-radius:var(--r-md);text-align:center;width:100%;transition:border-color var(--t-fast), box-shadow var(--t-fast);color:var(--ink);background:var(--surface);outline:none;margin-bottom:10px;padding:12px 14px;font-size:.97rem;font-weight:500}.nickname-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5b6cf91a}.nickname-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-bd);border-radius:var(--r-sm);margin:0 0 8px;padding:6px 10px;font-size:.78rem}.nickname-btn{background:var(--gradient);color:#fff;border-radius:var(--r-md);cursor:pointer;width:100%;transition:opacity var(--t-base), transform var(--t-fast), box-shadow var(--t-base);letter-spacing:.02em;border:none;margin-bottom:14px;padding:12px;font-size:.93rem;font-weight:700;box-shadow:0 3px 12px #5b6cf959}.nickname-btn:hover:not(:disabled){opacity:.92;box-shadow:var(--sh-accent);transform:translateY(-1px)}.nickname-btn:active:not(:disabled){box-shadow:none;transform:none}.nickname-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.nickname-note{color:var(--ink-4);margin:0;font-size:.74rem;line-height:1.65}.expense-items{flex-direction:column;gap:6px;list-style:none;display:flex}.expense-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);align-items:center;gap:12px;padding:11px 13px;transition:border-color .15s,box-shadow .15s;display:flex}.expense-item:hover{border-color:var(--border-2);box-shadow:0 2px 8px #0000000f}.expense-icon{flex-shrink:0;font-size:1.3rem}.expense-body{flex:1;min-width:0}.expense-top{align-items:center;gap:8px;margin-bottom:2px;display:flex}.expense-category{color:var(--ink);font-size:.86rem;font-weight:600}.expense-date{color:var(--ink-4);font-size:.75rem}.expense-desc{color:var(--ink-3);font-size:.78rem}.expense-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.expense-amount{color:var(--ink);font-size:.97rem;font-weight:700}.expense-actions{gap:2px;display:flex}.expense-actions button{color:var(--ink-4);opacity:.4;border-radius:var(--r-xs);background:0 0;border:none;padding:2px 4px;font-size:.84rem;transition:opacity .15s,color .15s}.expense-actions button:hover{opacity:1;color:var(--danger)}.chart-loading{text-align:center;color:var(--ink-4);padding:20px;font-size:.83rem}.expense-total{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--ink-3);justify-content:space-between;align-items:center;margin-top:12px;padding:11px 14px;font-size:.86rem;display:flex}.expense-total strong{color:var(--ink);font-size:1rem;font-weight:700}.expense-section{margin-bottom:14px}.expense-section-title{border-radius:var(--r-sm);justify-content:space-between;align-items:center;margin-bottom:8px;padding:6px 12px;font-size:.8rem;font-weight:700;display:flex}.expense-section-title.shared{background:var(--success-bg);color:var(--success);border:1px solid var(--success-bd)}.expense-section-title.personal{background:var(--accent-bg);color:var(--accent);border:1px solid #667eea40}.expense-section-total{font-size:.85rem;font-weight:700}.expense-grand-total{background:var(--gradient);border-radius:var(--r-md);color:#fffc;justify-content:space-between;align-items:center;margin-top:4px;padding:12px 14px;font-size:.88rem;display:flex}.expense-grand-total strong{color:#fff;font-size:1rem;font-weight:700}.empty.small{padding:8px 10px;font-size:.8rem}.participant-badge.guest{background:var(--success-bg);border-color:var(--success-bd);color:var(--success)}.btn-cancel-nickname{border:1.5px solid var(--border-2);border-radius:var(--r-sm);cursor:pointer;width:100%;color:var(--ink-3);background:0 0;margin-top:8px;padding:8px;font-size:.85rem;transition:background .15s}.btn-cancel-nickname:hover{background:var(--surface-2)}@media (width>=1024px){.expense-items{gap:8px}.expense-item{border-radius:var(--r-lg);padding:13px 16px}.expense-category{font-size:.9rem}.expense-amount{font-size:1.05rem}}@media (width<=479px){.expense-item{gap:8px;padding:9px 10px}.expense-amount{font-size:.9rem}.expense-category{font-size:.82rem}}.participant-badge{background:var(--accent-bg);border-radius:var(--r-md);color:var(--accent);border:1px solid #667eea40;justify-content:space-between;align-items:center;margin-bottom:12px;padding:8px 14px;font-size:.84rem;font-weight:600;display:flex}.btn-change-name{color:var(--ink-4);cursor:pointer;background:0 0;border:none;font-size:.74rem;text-decoration:underline}.btn-change-name:hover{color:var(--accent)}.checklist-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.checklist-progress{color:var(--ink-3);align-items:center;gap:8px;font-size:.82rem;display:flex}.progress-bar{background:var(--border);border-radius:3px;width:72px;height:5px;display:inline-block;overflow:hidden}.progress-fill{background:var(--gradient);border-radius:3px;height:100%;transition:width .3s;display:block}.checklist-group{margin-bottom:14px}.checklist-cat-label{color:var(--ink-4);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;margin-bottom:6px;font-size:.75rem;font-weight:700;display:flex}.cat-count{color:var(--ink-4);text-transform:none;letter-spacing:0;font-size:.73rem;font-weight:400}.checklist-items{flex-direction:column;gap:4px;list-style:none;display:flex}.checklist-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);align-items:center;gap:8px;padding:8px 10px;transition:background .15s,border-color .15s;display:flex}.checklist-item.checked{background:var(--success-bg);border-color:var(--success-bd)}.checklist-item.checked .item-text{color:var(--ink-4);text-decoration:line-through}.check-btn{cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:1.1rem;line-height:1}.item-text{color:var(--ink-2);flex:1;font-size:.88rem}.delete-btn{color:var(--ink-4);opacity:.4;cursor:pointer;border-radius:var(--r-xs);background:0 0;border:none;padding:2px 4px;font-size:.85rem;transition:opacity .15s,color .15s}.delete-btn:hover{opacity:1;color:var(--danger)}.preset-panel{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:12px;padding:14px}.preset-title{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:.75rem;font-weight:700}.preset-category{margin-bottom:10px}.preset-cat-label{color:var(--ink-3);margin-bottom:6px;font-size:.78rem;font-weight:600;display:block}.preset-items{flex-wrap:wrap;gap:6px;display:flex}.preset-item{background:var(--surface);border:1.5px solid var(--border-2);cursor:pointer;color:var(--ink-2);border-radius:20px;padding:3px 11px;font-size:.78rem;transition:border-color .15s,color .15s,background .15s}.preset-item:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.preset-item.added{background:var(--success-bg);border-color:var(--success-bd);color:var(--success);cursor:default}.reminder-toggle{background:#fafafa;border:1px solid #eee;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.reminder-info{flex:1;align-items:flex-start;gap:12px;display:flex}.reminder-icon{flex-shrink:0;font-size:1.4rem}.reminder-info strong{color:#333;margin-bottom:2px;font-size:.9rem;display:block}.reminder-info p{color:#999;font-size:.8rem}.reminder-blocked{margin-top:4px;color:#e74c3c!important}.reminder-note{color:#bbb;padding:12px 0;font-size:.82rem}.toggle-btn{cursor:pointer;border:none;border-radius:20px;flex-shrink:0;padding:8px 18px;font-size:.88rem;font-weight:700;transition:all .2s}.toggle-btn.on{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2)}.toggle-btn.off{color:#aaa;background:#eee}.toggle-btn:disabled{opacity:.5;cursor:not-allowed}.share-wrap{flex-direction:column;gap:8px;display:flex}.btn-share{background:var(--success-bg);border:1.5px solid var(--success-bd);color:var(--success);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;padding:7px 14px;font-size:.83rem;font-weight:600;transition:background .15s}.btn-share:hover:not(:disabled){background:#dcfce7}.btn-share.done{background:var(--success);color:#fff;border-color:var(--success)}.btn-share.error{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-bd)}.btn-share:disabled{opacity:.5;cursor:not-allowed}.share-url-row{align-items:center;gap:6px;display:flex}.share-url-input{border:1.5px solid var(--border-2);border-radius:var(--r-sm);color:var(--ink-2);background:var(--surface-2);outline:none;flex:1;min-width:0;padding:6px 10px;font-size:.77rem}.btn-copy{background:var(--accent-bg);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;color:var(--accent);border:1.5px solid #667eea4d;padding:6px 10px;font-size:.84rem;transition:background .15s}.btn-copy:hover{background:#667eea26}.btn-revoke{color:var(--ink-4);cursor:pointer;white-space:nowrap;background:0 0;border:none;font-size:.75rem;text-decoration:underline}.btn-revoke:hover{color:var(--danger)}.schedule-form{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-md);flex-direction:column;gap:10px;margin-bottom:16px;padding:16px;display:flex}.sf-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.sf-full,.schedule-form label{flex-direction:column;gap:4px;display:flex}.schedule-form label span{color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;font-size:.77rem;font-weight:600}.schedule-form input,.schedule-form select,.schedule-form textarea{border:1.5px solid var(--border-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);padding:8px 10px;font-size:.88rem;transition:border-color .15s,box-shadow .15s}.schedule-form input:focus,.schedule-form select:focus,.schedule-form textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #667eea1a}.sf-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.sf-actions button{border-radius:var(--r-sm);cursor:pointer;border:1.5px solid var(--border-2);background:var(--surface);color:var(--ink-2);padding:7px 18px;font-size:.86rem;font-weight:500;transition:background .15s}.sf-actions button:hover{background:var(--surface-2)}.sf-actions .btn-save{background:var(--gradient);color:#fff;border-color:#0000;font-weight:600;transition:opacity .2s}.sf-actions .btn-save:hover:not(:disabled){opacity:.88}.sf-actions .btn-save:disabled{opacity:.5;cursor:not-allowed}.schedule-section{flex-direction:column;gap:12px;display:flex}.schedule-days{flex-direction:column;gap:20px;display:flex}.schedule-date-header{color:var(--ink-2);background:var(--accent-bg);border-left:3px solid var(--accent);border-radius:0 var(--r-sm) var(--r-sm) 0;letter-spacing:.02em;margin-bottom:6px;padding:7px 13px;font-size:.82rem;font-weight:700}.schedule-date-header.sun{color:var(--danger);border-left-color:var(--danger);background:var(--danger-bg)}.schedule-date-header.sat{color:var(--accent-2);border-left-color:var(--accent-2);background:#764ba20f}.schedule-timeline{flex-direction:column;padding-left:4px;display:flex}.schedule-item{grid-template-columns:50px 22px 1fr;gap:0 8px;min-height:52px;display:grid}.timeline-time{flex-direction:column;align-items:flex-end;gap:2px;padding-top:6px;display:flex}.time-start{color:var(--ink);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700}.time-end{color:var(--ink-4);font-variant-numeric:tabular-nums;font-size:.73rem}.timeline-line{flex-direction:column;align-items:center;padding-top:8px;display:flex}.timeline-dot{background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 3px var(--surface), 0 0 0 4px var(--accent);z-index:1;border-radius:50%;flex-shrink:0}.timeline-bar{background:#667eea33;flex:1;width:2px;min-height:20px;margin-top:4px}.timeline-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:8px;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.timeline-content:hover{border-color:#667eea40;box-shadow:0 2px 8px #0000000f}.schedule-item-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.schedule-category{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-size:.75rem;font-weight:600}.schedule-actions{gap:2px;display:flex}.schedule-actions button{cursor:pointer;border-radius:var(--r-xs);color:var(--ink-4);opacity:.5;background:0 0;border:none;padding:2px 4px;font-size:.83rem;transition:opacity .15s}.schedule-actions button:hover{opacity:1}.schedule-title{color:var(--ink);margin-bottom:3px;font-size:.92rem;font-weight:700}.schedule-location{color:var(--ink-3);margin-bottom:2px;font-size:.78rem}.schedule-notes{color:var(--ink-3);white-space:pre-wrap;margin-top:4px;font-size:.78rem;line-height:1.55}@media (width>=1024px){.schedule-item{border-radius:var(--r-lg);padding:14px 16px 14px 20px}.schedule-title{font-size:.96rem}.schedule-time{font-size:.8rem}}@media (width<=479px){.schedule-item{padding:10px 12px 10px 14px}.schedule-title{font-size:.88rem}}.edit-link-wrap{width:100%}.btn-edit-link{background:var(--cta-bg);border:1.5px solid var(--cta);color:var(--cta);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;padding:7px 14px;font-size:.83rem;font-weight:600;transition:background .15s}.btn-edit-link:hover:not(:disabled){background:#ffeecb}.btn-edit-link.error{border-color:var(--danger);color:var(--danger);background:var(--danger-bg)}.btn-edit-link:disabled{opacity:.5;cursor:not-allowed}.edit-link-panel{background:var(--cta-bg);border-radius:var(--r-md);border:1.5px solid #fcd34d;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.edit-link-label{color:var(--cta-2);align-items:center;gap:8px;font-size:.82rem;font-weight:700;display:flex}.edit-link-badge{background:var(--cta);color:#fff;border-radius:20px;padding:2px 8px;font-size:.68rem;font-weight:600}.edit-link-row{align-items:center;gap:6px;display:flex}.edit-link-input{border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);border:1.5px solid #fcd34d;outline:none;flex:1;min-width:0;padding:6px 10px;font-size:.77rem}.btn-copy-link{background:var(--surface);border-radius:var(--r-sm);cursor:pointer;border:1.5px solid #fcd34d;flex-shrink:0;padding:6px 10px;font-size:.88rem;transition:background .15s,border-color .15s}.btn-copy-link.copied{background:var(--success-bg);border-color:var(--success-bd)}.btn-copy-link:hover{background:#fef3c7}.edit-link-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.edit-link-hint{color:var(--danger);font-size:.73rem}.btn-revoke-link{color:var(--ink-4);cursor:pointer;white-space:nowrap;background:0 0;border:none;font-size:.75rem;text-decoration:underline}.btn-revoke-link:hover{color:var(--danger)}.lb-overlay{z-index:2000;background:#000000f2;justify-content:center;align-items:center;animation:.2s lb-fade-in;display:flex;position:fixed;inset:0}@keyframes lb-fade-in{0%{opacity:0}to{opacity:1}}.lb-container{flex-direction:column;width:100%;max-width:768px;height:100%;margin:0 auto;display:flex;position:relative}.lb-topbar{z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.lb-counter{color:#ffffffb3;font-size:.85rem}.lb-close{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.9rem;transition:background .15s;display:flex}.lb-close:hover{background:#ffffff4d}.lb-img-area{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.lb-img-loading{font-size:2rem;animation:1.2s infinite pulse;position:absolute}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.lb-img{object-fit:contain;opacity:0;max-width:100%;max-height:100%;transition:opacity .2s;display:block}.lb-img.loaded{opacity:1}.lb-nav{color:#fff;cursor:pointer;z-index:10;background:#ffffff1f;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:2rem;line-height:1;transition:background .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lb-nav:hover{background:#ffffff40}.lb-prev{left:12px}.lb-next{right:12px}.lb-footer{flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:12px;padding:12px 16px 20px;display:flex}.lb-meta{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.lb-date{color:#ffffffb3;font-size:.82rem}.lb-by{color:#ffffff80;font-size:.79rem}.lb-caption{color:#ffffffd9;word-break:break-word;margin:4px 0 0;font-size:.88rem;line-height:1.5}.lb-delete{color:#ff6b6b;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;background:#e74c3c33;border:1px solid #e74c3c66;flex-shrink:0;padding:6px 12px;font-size:.8rem;transition:background .15s}.lb-delete:hover{background:#e74c3c66}@media (width<=480px){.lb-nav{width:36px;height:36px;font-size:1.5rem}.lb-prev{left:6px}.lb-next{right:6px}}.album-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.album-count{color:var(--ink-3);font-size:.8rem;font-weight:500}.btn-add-photo{background:var(--gradient);color:#fff;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;border:none;padding:6px 14px;font-size:.82rem;font-weight:600;transition:opacity .2s}.btn-add-photo:hover:not(:disabled){opacity:.88}.btn-add-photo:disabled{opacity:.6;cursor:not-allowed}.album-progress-bar{background:var(--border);border-radius:2px;height:3px;margin-bottom:12px;overflow:hidden}.album-progress-fill{background:var(--gradient);border-radius:2px;height:100%;transition:width .3s}.album-empty{text-align:center;background:var(--surface-2);border:1.5px dashed var(--border-2);border-radius:var(--r-lg);padding:48px 20px}.album-empty-icon{margin-bottom:12px;font-size:3rem}.album-empty p{color:var(--ink-3);margin-bottom:6px;font-size:.95rem}.album-empty-sub{line-height:1.6;color:var(--ink-4)!important;margin-bottom:20px!important;font-size:.82rem!important}.btn-add-photo-empty{background:var(--gradient);color:#fff;border-radius:var(--r-sm);cursor:pointer;border:none;padding:10px 20px;font-size:.9rem;font-weight:600;transition:opacity .2s}.btn-add-photo-empty:hover{opacity:.88}.album-groups{flex-direction:column;gap:20px;display:flex}.album-date-header{color:var(--ink-2);background:var(--accent-bg);border-left:3px solid var(--accent);border-radius:0 var(--r-sm) var(--r-sm) 0;justify-content:space-between;align-items:center;margin-bottom:8px;padding:6px 12px;font-size:.82rem;font-weight:700;display:flex}.album-date-count{color:var(--ink-3);font-size:.75rem;font-weight:400}.album-grid{grid-template-columns:repeat(3,1fr);gap:3px;display:grid}.album-thumb{aspect-ratio:1;cursor:pointer;background:var(--surface-2);border-radius:4px;position:relative;overflow:hidden}.album-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .2s,opacity .2s;display:block}.album-thumb:hover img{opacity:.92;transform:scale(1.04)}.album-thumb:active img{transform:scale(.97)}.album-thumb-by{color:#fff;white-space:nowrap;text-overflow:ellipsis;background:#0000008c;border-radius:10px;max-width:calc(100% - 8px);padding:2px 6px;font-size:.65rem;position:absolute;bottom:4px;left:4px;overflow:hidden}@media (width>=480px){.album-grid{grid-template-columns:repeat(4,1fr)}}.hf-type-row{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:22px;display:grid}.hf-type-btn{border:2px solid var(--border-2);border-radius:var(--r-md);background:var(--surface-2);color:var(--ink-3);cursor:pointer;text-align:center;transition:all var(--t-base);letter-spacing:.01em;padding:11px 4px;font-size:.85rem;font-weight:600}.hf-type-btn:hover{border-color:var(--accent);color:var(--accent)}.hf-type-btn.active{border-color:var(--accent);background:var(--accent-bg2);color:var(--accent);box-shadow:0 2px 8px #5b6cf933}.hf-type-btn.extra.active{border-color:var(--danger);background:var(--danger-bg);color:var(--danger-dk);box-shadow:0 2px 8px #ef444426}.hf-vitals{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px;display:grid}.hf-field{flex-direction:column;gap:5px;display:flex}.hf-field.full{grid-column:1/-1}.hf-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-size:.74rem;font-weight:700}.hf-input{border:1.5px solid var(--border-2);border-radius:var(--r-md);color:var(--ink);background:var(--surface);transition:border-color var(--t-fast), box-shadow var(--t-fast);-webkit-appearance:none;outline:none;padding:12px 13px;font-size:1rem;font-weight:500}.hf-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5b6cf91a}.hf-symptoms-title{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:.74rem;font-weight:700}.hf-symptom-grid{grid-template-columns:repeat(2,1fr);gap:7px;margin-bottom:20px;display:grid}.hf-sym-label{border:1.5px solid var(--border);border-radius:var(--r-md);cursor:pointer;color:var(--ink-2);transition:all var(--t-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:9px 12px;font-size:.87rem;display:flex}.hf-sym-label:hover{border-color:var(--border-2);background:var(--surface-2)}.hf-sym-label:has(input:checked){border-color:var(--accent);background:var(--accent-bg);color:var(--accent);font-weight:600}.hf-sym-label input{width:15px;height:15px;accent-color:var(--accent);flex-shrink:0}.hf-note{border:1.5px solid var(--border-2);border-radius:var(--r-md);width:100%;color:var(--ink);background:var(--surface);resize:vertical;min-height:68px;transition:border-color var(--t-fast), box-shadow var(--t-fast);outline:none;margin-bottom:20px;padding:11px 13px;font-family:inherit;font-size:.9rem;line-height:1.6}.hf-note:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5b6cf91a}.hf-actions{gap:10px;display:flex}.hf-save-btn{background:var(--gradient);color:#fff;border-radius:var(--r-lg);cursor:pointer;transition:opacity var(--t-base), transform var(--t-fast), box-shadow var(--t-base);letter-spacing:.02em;border:none;flex:1;padding:14px;font-size:.97rem;font-weight:700;box-shadow:0 4px 16px #5b6cf959}.hf-save-btn:hover:not(:disabled){opacity:.92;box-shadow:var(--sh-accent);transform:translateY(-1px)}.hf-save-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.hf-cancel-btn{border:1.5px solid var(--border-2);border-radius:var(--r-lg);color:var(--ink-3);cursor:pointer;transition:all var(--t-fast);background:0 0;padding:14px 18px;font-size:.9rem}.hf-cancel-btn:hover{border-color:var(--border-3);color:var(--ink-2);background:var(--surface-2)}.health-section{padding-bottom:48px}@media (width>=1024px){.health-section{max-width:900px}.health-vitals-grid{grid-template-columns:repeat(3,1fr)}.health-content{padding:var(--sp-xl)}.health-person-bar{padding:12px var(--sp-xl)}.health-nickname-bar{padding:14px var(--sp-xl) 0}.health-add-person{padding:12px var(--sp-xl)}.med-cards{grid-template-columns:repeat(2,1fr);display:grid}.med-today{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.hf-symptom-grid,.hf-vitals{grid-template-columns:repeat(3,1fr)}}@media (width<=479px){.health-content{padding:var(--sp-sm)}.health-type-slots{gap:5px}.health-slot{padding:8px 4px}.slot-label{font-size:.66rem}.health-vitals-grid{grid-template-columns:repeat(2,1fr)}.med-timing-row{gap:4px}.med-timing-btn{padding:6px 9px;font-size:.76rem}}.health-nickname-bar{padding:12px var(--sp-lg) 0}.health-person-bar{padding:10px var(--sp-lg);border-bottom:1px solid var(--border);background:var(--surface)}.health-person-list{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.health-person-btn{background:var(--surface-3);border:1.5px solid var(--border);cursor:pointer;color:var(--ink-2);transition:all var(--t-base);white-space:nowrap;border-radius:99px;padding:6px 16px;font-size:.83rem;font-weight:500}.health-person-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.health-person-btn.active{background:var(--gradient);color:#fff;border-color:#0000;font-weight:600;box-shadow:0 2px 8px #5b6cf94d}.health-add-person-btn{border:1.5px dashed var(--border-2);cursor:pointer;color:var(--ink-3);transition:all var(--t-base);background:0 0;border-radius:99px;padding:6px 14px;font-size:1rem;line-height:1}.health-add-person-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.health-add-person{padding:12px var(--sp-lg);background:var(--accent-bg);border-bottom:1px solid #5b6cf91f;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.health-input{border:1.5px solid var(--border-2);border-radius:var(--r-md);min-width:160px;color:var(--ink);background:var(--surface);transition:border-color var(--t-fast), box-shadow var(--t-fast);outline:none;flex:1;padding:9px 12px;font-size:.92rem}.health-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5b6cf91a}.health-btn-primary{background:var(--gradient);color:#fff;border-radius:var(--r-md);cursor:pointer;white-space:nowrap;transition:opacity var(--t-fast), transform var(--t-fast);border:none;padding:9px 18px;font-size:.88rem;font-weight:600;box-shadow:0 2px 8px #5b6cf940}.health-btn-primary:hover{opacity:.9;transform:translateY(-1px)}.health-btn-primary:active{transform:none}.health-btn-ghost{border:1px solid var(--border-2);border-radius:var(--r-md);color:var(--ink-3);cursor:pointer;white-space:nowrap;transition:all var(--t-fast);background:0 0;padding:9px 14px;font-size:.88rem}.health-btn-ghost:hover{border-color:var(--border-3);color:var(--ink-2)}.health-empty{text-align:center;padding:64px var(--sp-lg);color:var(--ink-3);font-size:.92rem;line-height:1.8}.health-tabs{border-bottom:1px solid var(--border);background:var(--surface);top:var(--header-h);z-index:50;-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;position:sticky;overflow-x:auto}.health-tabs::-webkit-scrollbar{display:none}.health-tab{min-width:72px;color:var(--ink-3);cursor:pointer;transition:color var(--t-fast), border-color var(--t-fast);white-space:nowrap;letter-spacing:.01em;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:13px 10px;font-size:.82rem;font-weight:500}.health-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-bg);font-weight:700}.health-tab:hover:not(.active){color:var(--ink-2);background:var(--surface-2)}.health-content{padding:var(--sp-lg)}.health-status-card{border-radius:var(--r-xl);transition:all var(--t-base);border:2px solid #0000;align-items:center;gap:18px;margin-bottom:16px;padding:20px;display:flex}.health-status-card.status-green{border-color:var(--success-bd);background:linear-gradient(135deg,#ecfdf5 0%,#f0fdf9 100%);box-shadow:0 2px 12px #10b98114}.health-status-card.status-yellow{border-color:var(--warning-bd);background:linear-gradient(135deg,#fffbeb 0%,#fef9ec 100%);box-shadow:0 2px 12px #f59e0b14}.health-status-card.status-red{border-color:var(--danger-bd);background:linear-gradient(135deg,#fef2f2 0%,#fef5f5 100%);box-shadow:0 2px 12px #ef444414}.health-status-card.status-none{background:var(--surface-2);border-color:var(--border)}.health-status-emoji{filter:drop-shadow(0 2px 4px #0000001a);flex-shrink:0;font-size:2.6rem;line-height:1}.health-status-info{flex:1}.health-status-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:.74rem;font-weight:600}.health-status-value{color:var(--ink);letter-spacing:-.02em;font-size:1.5rem;font-weight:800}.status-green .health-status-value{color:var(--success-dk)}.status-yellow .health-status-value{color:var(--warning-dk)}.status-red .health-status-value{color:var(--danger-dk)}.health-type-slots{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.health-slot{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-md);text-align:center;transition:all var(--t-base);padding:10px 6px}.health-slot.done{background:var(--success-bg);border-color:var(--success-bd)}.slot-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;font-size:.72rem;font-weight:600;display:block}.slot-check{font-size:1.1rem}.health-abnormal{background:var(--danger-bg);border:1px solid var(--danger-bd);border-left:4px solid var(--danger);border-radius:var(--r-md);margin-bottom:16px;padding:12px 14px}.health-abnormal-title{color:var(--danger-dk);align-items:center;gap:6px;margin-bottom:8px;font-size:.8rem;font-weight:700;display:flex}.health-abnormal-list{flex-wrap:wrap;gap:6px;display:flex}.health-abnormal-tag{background:var(--danger);color:#fff;border-radius:99px;padding:3px 10px;font-size:.74rem;font-weight:600}.health-vitals{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);margin-bottom:16px;padding:16px}.health-vitals-title{color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:12px;font-size:.72rem;font-weight:700}.health-vitals-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.health-vital-item{background:var(--surface-2);border-radius:var(--r-md);border:1px solid var(--border);flex-direction:column;gap:3px;padding:10px;display:flex}.vital-label{color:var(--ink-4);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:600}.vital-value{color:var(--ink);letter-spacing:-.01em;font-size:1.2rem;font-weight:700}.vital-value.warning{color:var(--warning-dk)}.vital-value.abnormal{color:var(--danger-dk)}.health-symptom-tags{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:12px;display:flex}.health-sym-tag{background:var(--warning-bg);border:1px solid var(--warning-bd);color:var(--warning-dk);border-radius:99px;padding:3px 10px;font-size:.73rem;font-weight:500}.health-record-btn{background:var(--gradient);color:#fff;border-radius:var(--r-lg);cursor:pointer;width:100%;transition:opacity var(--t-base), transform var(--t-fast), box-shadow var(--t-base);letter-spacing:.02em;border:none;margin-bottom:12px;padding:15px;font-size:.97rem;font-weight:700;box-shadow:0 4px 16px #5b6cf959}.health-record-btn:hover{opacity:.92;box-shadow:var(--sh-accent);transform:translateY(-1px)}.health-record-btn:active{box-shadow:none;transform:none}.health-delete-person{border:1px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--ink-4);cursor:pointer;transition:all var(--t-base);background:0 0;padding:10px;font-size:.8rem}.health-delete-person:hover{border-color:var(--danger-bd);color:var(--danger);background:var(--danger-bg)}.health-charts{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.health-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);padding:14px 14px 10px}.chart-title{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:.76rem;font-weight:700}.chart-legend{gap:12px;margin-top:6px;font-size:.68rem;font-weight:600;display:flex}.legend-warn{color:var(--warning-dk)}.legend-danger{color:var(--danger-dk)}.med-section{padding-top:4px}.med-section-title{color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px;font-size:.72rem;font-weight:700}.med-today{margin-bottom:24px}.med-today-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);margin-bottom:8px;padding:14px 16px}.med-today-name{color:var(--ink);align-items:center;gap:8px;margin-bottom:10px;font-size:.92rem;font-weight:600;display:flex}.med-dose-badge{background:var(--accent-bg);color:var(--accent);border:1px solid #5b6cf92e;border-radius:99px;padding:2px 9px;font-size:.7rem;font-weight:600}.med-timing-row{flex-wrap:wrap;gap:6px;display:flex}.med-timing-btn{border:1.5px solid var(--border-2);border-radius:var(--r-md);background:var(--surface-2);color:var(--ink-3);cursor:pointer;transition:all var(--t-base);padding:7px 13px;font-size:.8rem;font-weight:500}.med-timing-btn:hover:not(.taken){border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.med-timing-btn.taken{background:var(--success-bg);border-color:var(--success-bd);color:var(--success-dk);font-weight:700;box-shadow:0 1px 4px #10b98133}.med-list-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.med-add-btn{background:var(--gradient);color:#fff;border-radius:var(--r-md);cursor:pointer;transition:opacity var(--t-fast), transform var(--t-fast);border:none;padding:7px 15px;font-size:.8rem;font-weight:600;box-shadow:0 2px 8px #5b6cf940}.med-add-btn:hover{opacity:.9;transform:translateY(-1px)}.med-add-form{background:var(--accent-bg);border-radius:var(--r-lg);border:1px solid #5b6cf926;flex-direction:column;gap:10px;margin-bottom:16px;padding:16px;display:flex}.med-form-row{gap:8px;display:flex}.med-input{border:1.5px solid var(--border-2);border-radius:var(--r-md);color:var(--ink);background:var(--surface);transition:border-color var(--t-fast), box-shadow var(--t-fast);outline:none;flex:1;padding:9px 12px;font-size:.9rem}.med-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5b6cf91a}.med-form-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:.74rem;font-weight:700;display:block}.med-timing-check-row{flex-wrap:wrap;gap:6px;display:flex}.med-timing-check{border:1.5px solid var(--border-2);border-radius:var(--r-md);cursor:pointer;background:var(--surface);color:var(--ink-3);transition:all var(--t-fast);-webkit-user-select:none;user-select:none;padding:6px 12px;font-size:.8rem;font-weight:500}.med-timing-check.checked{background:var(--accent-bg2);border-color:var(--accent);color:var(--accent);font-weight:700}.med-save-btn{background:var(--gradient);color:#fff;border-radius:var(--r-md);cursor:pointer;transition:opacity var(--t-fast), transform var(--t-fast);border:none;padding:11px;font-size:.9rem;font-weight:600;box-shadow:0 2px 10px #5b6cf94d}.med-save-btn:hover{opacity:.9;transform:translateY(-1px)}.med-empty{color:var(--ink-4);text-align:center;padding:24px 0;font-size:.88rem}.med-cards{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.med-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:14px 42px 14px 16px;position:relative}.med-card:hover{border-color:var(--border-2);box-shadow:var(--sh-sm)}.med-card-main{align-items:center;gap:8px;margin-bottom:7px;display:flex}.med-card-name{color:var(--ink);font-size:.92rem;font-weight:600}.med-card-times{flex-wrap:wrap;gap:5px;margin-bottom:5px;display:flex}.med-time-tag{background:var(--accent-bg);color:var(--accent);border:1px solid #5b6cf926;border-radius:99px;padding:2px 9px;font-size:.72rem;font-weight:600}.med-card-note{color:var(--ink-3);margin-top:4px;font-size:.77rem}.med-del-btn{color:var(--ink-5);cursor:pointer;border-radius:var(--r-sm);transition:color var(--t-fast), background var(--t-fast);background:0 0;border:none;padding:5px;font-size:.88rem;position:absolute;top:12px;right:10px}.med-del-btn:hover{color:var(--danger);background:var(--danger-bg)}.med-history{border-top:1px solid var(--border);padding-top:2px}.med-history-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:9px 0;font-size:.81rem;display:flex}.med-history-time{color:var(--ink-3);white-space:nowrap}.med-history-name{color:var(--ink);flex:1;font-weight:500}.med-history-timing{color:var(--accent);white-space:nowrap;font-weight:600}.health-history-empty{text-align:center;color:var(--ink-4);padding:48px 0;font-size:.9rem}.health-date-group{margin-bottom:24px}.health-date-header{color:var(--ink-4);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px;padding:5px 0;font-size:.72rem;font-weight:700}.health-log-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);transition:box-shadow var(--t-fast);margin-bottom:8px;padding:13px 16px;position:relative}.health-log-card:hover{box-shadow:var(--sh-sm)}.health-log-card.status-red{border-left:3px solid var(--danger)}.health-log-card.status-yellow{border-left:3px solid var(--warning)}.health-log-card.status-green{border-left:3px solid var(--success)}.health-log-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:9px;display:flex}.health-log-time{color:var(--ink-3);font-size:.78rem;font-weight:500}.health-log-type{background:var(--accent-bg);color:var(--accent);letter-spacing:.03em;border-radius:99px;padding:2px 9px;font-size:.72rem;font-weight:700}.health-log-type.extra{background:var(--danger-bg);color:var(--danger-dk)}.health-log-vitals{flex-wrap:wrap;gap:10px;margin-bottom:7px;display:flex}.log-vital{color:var(--ink-2);font-size:.8rem;font-weight:500}.log-vital.abnormal{color:var(--danger-dk);font-weight:700}.log-vital.warning{color:var(--warning-dk);font-weight:700}.health-log-symptoms{flex-wrap:wrap;gap:4px;margin-bottom:5px;display:flex}.health-log-note{color:var(--ink-3);margin-top:5px;font-size:.78rem;line-height:1.6}.health-log-del{color:var(--ink-5);cursor:pointer;border-radius:var(--r-sm);transition:color var(--t-fast), background var(--t-fast);background:0 0;border:none;padding:5px;font-size:.88rem;position:absolute;top:11px;right:10px}.health-log-del:hover{color:var(--danger);background:var(--danger-bg)}.detail-header{margin-bottom:var(--sp-lg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.btn-back{color:var(--accent);cursor:pointer;transition:color var(--t-fast), gap var(--t-fast);background:0 0;border:none;flex-shrink:0;align-items:center;gap:4px;padding:6px 0;font-size:.85rem;font-weight:600;display:flex}.btn-back:hover{color:var(--accent-2);gap:7px}.detail-header-actions{flex-wrap:wrap;gap:8px;display:flex}.btn-pdf{background:var(--surface);border:1.5px solid var(--border-2);color:var(--ink-3);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-base);padding:7px 13px;font-size:.8rem;font-weight:500}.btn-pdf:hover:not(:disabled){border-color:var(--cta);color:var(--cta-2);background:var(--cta-bg);box-shadow:0 2px 8px #f59e0b26}.btn-pdf:disabled{opacity:.45;cursor:not-allowed}.btn-edit{background:var(--surface);border:1.5px solid var(--accent);color:var(--accent);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-base);padding:7px 13px;font-size:.8rem;font-weight:600}.btn-edit:hover{background:var(--accent);color:#fff;box-shadow:var(--sh-accent)}.detail-hero{background:var(--gradient);border-radius:var(--r-xl);padding:28px var(--sp-lg);color:#fff;margin-bottom:28px;position:relative;overflow:hidden}.detail-hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff26 0%,#0000 70%);width:220px;height:220px;position:absolute;top:-40px;right:-40px}.detail-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff14 0%,#0000 70%);width:160px;height:160px;position:absolute;bottom:-30px;left:-20px}.detail-hero h2{color:#fff;letter-spacing:-.02em;z-index:1;text-shadow:0 1px 4px #00000026;margin-bottom:8px;font-size:1.45rem;font-weight:800;position:relative}.detail-description{color:#ffffffd1;z-index:1;margin-bottom:14px;font-size:.88rem;line-height:1.7;position:relative}.detail-meta{z-index:1;flex-wrap:wrap;gap:8px;display:flex;position:relative}.meta-badge{color:#ffffffeb;background:#ffffff2e;border:1px solid #ffffff47;border-radius:99px;padding:4px 12px;font-size:.76rem;font-weight:500}.detail-sections{flex-direction:column;gap:32px;display:flex}.detail-section h3{color:var(--ink-3);letter-spacing:.07em;text-transform:uppercase;border-bottom:2px solid var(--border);align-items:center;width:100%;margin-bottom:14px;padding-bottom:10px;font-size:.8rem;font-weight:700;display:flex;position:relative}.detail-section h3:after{content:"";background:var(--gradient);border-radius:99px;width:44px;height:2px;position:absolute;bottom:-2px;left:0}.detail-tabs-wrap{top:var(--header-h);z-index:100;background:var(--surface);border-bottom:1.5px solid var(--border);margin-bottom:0;position:sticky}.detail-tabs-wrap:after{content:"";background:linear-gradient(to right, transparent, var(--surface));pointer-events:none;width:36px;position:absolute;top:0;bottom:0;right:0}.detail-tabs{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 4px;display:flex;overflow-x:auto}.detail-tabs::-webkit-scrollbar{display:none}.detail-tab{cursor:pointer;color:var(--ink-4);white-space:nowrap;letter-spacing:.03em;transition:color var(--t-base), border-color var(--t-base), background var(--t-base);background:0 0;border:none;border-bottom:2.5px solid #0000;flex-direction:column;flex-shrink:0;align-items:center;gap:3px;padding:10px 14px 8px;font-size:.68rem;font-weight:600;display:flex;position:relative}.tab-icon{transition:transform var(--t-base);font-size:1.3rem;line-height:1}.tab-label{line-height:1}.detail-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.detail-tab.active .tab-icon{transform:scale(1.12)}.detail-tab:hover:not(.active){color:var(--ink-2);background:var(--surface-2)}.detail-tab-content{padding:var(--sp-lg) 0;min-height:320px}.detail-footer{border-top:1.5px solid var(--border);flex-direction:column;gap:20px;margin-top:36px;padding-top:20px;display:flex}.detail-footer-row{flex-direction:column;gap:10px;display:flex}.footer-row-label{color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;border-bottom:1.5px solid var(--border);padding-bottom:8px;font-size:.75rem;font-weight:700;position:relative}.footer-row-label:after{content:"";background:var(--gradient);border-radius:99px;width:36px;height:1.5px;position:absolute;bottom:-1.5px;left:0}@media (width>=640px){.detail-tabs-wrap:after{width:0}.detail-tab{flex-direction:row;gap:6px;padding:12px 18px;font-size:.78rem}.tab-icon{font-size:1.05rem}}.coming-soon{text-align:center;background:var(--surface-2);border-radius:var(--r-lg);color:var(--ink-4);border:1px dashed var(--border-2);padding:32px;font-size:.88rem}@media (width<=479px){.detail-header{margin-bottom:var(--sp-md)}.detail-hero{padding:22px var(--sp-md);border-radius:var(--r-lg);margin-bottom:20px}.detail-hero h2{font-size:1.25rem}.detail-sections{gap:24px}.detail-header-actions{gap:6px}.btn-pdf,.btn-edit{padding:6px 10px;font-size:.76rem}.detail-tab{padding:8px 10px 6px;font-size:.63rem}.tab-icon{font-size:1.15rem}}@media (width>=1024px){.detail-hero{padding:32px 36px}.detail-hero h2{font-size:1.7rem}.detail-sections{gap:36px}.btn-back{display:none}}@media (width>=1280px){.detail-hero{padding:36px 40px}}.trip-form-container{max-width:520px}.form-header{align-items:center;gap:14px;margin-bottom:28px;display:flex}.form-header h2{color:var(--ink);letter-spacing:-.01em;font-size:1.15rem;font-weight:700}.btn-back{color:var(--accent);cursor:pointer;transition:color var(--t-fast);background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:.85rem;font-weight:600;display:flex}.btn-back:hover{color:var(--accent-2)}.trip-form{flex-direction:column;gap:20px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink-2);letter-spacing:.03em;font-size:.8rem;font-weight:700}.required{color:var(--danger)}.field input,.field textarea{border:1.5px solid var(--border-2);border-radius:var(--r-md);transition:border-color var(--t-fast), box-shadow var(--t-fast);width:100%;color:var(--ink);background:var(--surface);outline:none;padding:11px 14px;font-size:.93rem}.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5b6cf91a}.field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-bd);border-radius:var(--r-md);padding:10px 14px;font-size:.83rem}.form-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.btn-secondary{background:var(--surface-2);color:var(--ink-2);border:1.5px solid var(--border-2);border-radius:var(--r-md);transition:background var(--t-fast), border-color var(--t-fast);cursor:pointer;padding:10px 20px;font-size:.88rem;font-weight:500}.btn-secondary:hover{background:var(--surface-3);border-color:var(--border-3)}.btn-primary{background:var(--gradient);color:#fff;border-radius:var(--r-md);transition:opacity var(--t-base), transform var(--t-fast), box-shadow var(--t-base);cursor:pointer;border:none;padding:10px 22px;font-size:.88rem;font-weight:600;box-shadow:0 2px 12px #5b6cf94d}.btn-primary:hover{opacity:.92;box-shadow:var(--sh-accent);transform:translateY(-1px)}.btn-primary:active{box-shadow:none;transform:none}.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.install-banner{background:var(--surface);border-radius:var(--r-lg);width:calc(100% - 32px);max-width:720px;box-shadow:var(--sh-lg);z-index:1000;border:1.5px solid #667eea33;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;animation:.3s slide-up;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.install-banner.ios{flex-direction:column;align-items:flex-start;gap:8px;position:relative}.install-banner.ios .btn-dismiss{position:absolute;top:12px;right:12px}@keyframes slide-up{0%{opacity:0;transform:translate(-50%)translateY(100px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.install-banner-content{flex:1;align-items:center;gap:12px;display:flex}.install-icon{flex-shrink:0;font-size:1.7rem}.install-banner-content strong{color:var(--ink);font-size:.88rem;font-weight:600;display:block}.install-banner-content p{color:var(--ink-3);margin-top:2px;font-size:.78rem;line-height:1.45}.install-banner-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.btn-install{background:var(--gradient);color:#fff;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;border:none;padding:8px 16px;font-size:.85rem;font-weight:600;transition:opacity .2s}.btn-install:hover{opacity:.88}.btn-dismiss{color:var(--ink-4);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1.1rem;line-height:1;transition:color .15s}.btn-dismiss:hover{color:var(--ink-2)}.share-view{background:var(--surface);max-width:768px;min-height:100vh;box-shadow:var(--sh-md);margin:0 auto}.share-header{background:var(--gradient);color:var(--header-fg);padding:28px var(--sp-lg) 24px}.share-header-label{text-transform:uppercase;letter-spacing:.08em;opacity:.7;margin-bottom:10px;font-size:.75rem}.share-header h1{letter-spacing:-.01em;margin-bottom:10px;font-size:1.5rem;font-weight:700}.share-meta{opacity:.8;gap:14px;margin-bottom:8px;font-size:.84rem;display:flex}.share-description{opacity:.85;margin-top:8px;font-size:.86rem;line-height:1.6}.share-body{padding:var(--sp-lg)}.share-section{margin-bottom:28px}.share-section h2{color:var(--ink-2);border-bottom:2px solid var(--border);border-image:linear-gradient(90deg, var(--accent), transparent) 1;margin-bottom:14px;padding-bottom:8px;font-size:.88rem;font-weight:700}.share-dest-list,.share-expense-list{flex-direction:column;gap:10px;list-style:none;display:flex}.share-dest-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.share-dest-photo{object-fit:cover;width:100%;height:160px;display:block}.share-dest-body{align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.share-dest-num{background:var(--gradient);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:2px;font-size:.72rem;font-weight:700;display:flex}.share-dest-body strong{color:var(--ink);margin-bottom:3px;font-size:.92rem;display:block}.share-dest-body p{color:var(--ink-3);margin-bottom:2px;font-size:.79rem}.share-expense-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);align-items:center;gap:10px;padding:10px 13px;font-size:.86rem;display:flex}.share-expense-body{color:var(--ink-2);flex-direction:column;flex:1;gap:2px;display:flex}.share-expense-amount{color:var(--ink);font-weight:700}.share-notes{color:var(--ink-4);font-size:.76rem}.share-total{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--ink-3);justify-content:space-between;align-items:center;margin-top:12px;padding:12px 14px;font-size:.87rem;display:flex}.share-total strong{color:var(--ink);font-size:1rem;font-weight:700}.share-footer{text-align:center;border-top:1px solid var(--border);color:var(--ink-4);padding:24px;font-size:.79rem}.share-error,.share-loading{min-height:60vh;color:var(--ink-4);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:.95rem;display:flex}.share-error p:first-child{font-size:3rem}.login-lang-switcher{justify-content:center;gap:8px;margin-bottom:28px;display:flex}.btn-lang-login{background:var(--surface-2);border:1.5px solid var(--border-2);border-radius:var(--r-md);cursor:pointer;color:var(--ink-3);transition:all var(--t-base);padding:7px 16px;font-size:.82rem;font-weight:500}.btn-lang-login:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.btn-lang-login.active{background:var(--accent-bg2);border-color:var(--accent);color:var(--accent);font-weight:700;box-shadow:0 2px 8px #5b6cf926}.login-bg{min-height:100vh;padding:var(--sp-lg);background:linear-gradient(#2d1b69 0%,#5b6cf9 35%,#7c3aed 60%,#a855f7 80%,#c084fc 100%);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-bg:before{content:"";pointer-events:none;background-image:radial-gradient(1px at 15% 20%,#ffffff80 1px,#0000 0),radial-gradient(1px at 35% 10%,#fff6 1px,#0000 0),radial-gradient(1px at 70% 15%,#fff9 1px,#0000 0),radial-gradient(1px at 85% 8%,#ffffff4d 1px,#0000 0),radial-gradient(1px at 92% 25%,#ffffff80 1px,#0000 0),radial-gradient(1px at 25% 35%,#fff3 1px,#0000 0),radial-gradient(2px at 50% 5%,#fff6 1px,#0000 0);position:absolute;inset:0}.login-bg:after{content:"";pointer-events:none;background:radial-gradient(#c8b4ff40 0%,#0000 70%);width:500px;height:300px;position:absolute;top:-80px;left:50%;transform:translate(-50%)}.login-card{background:var(--surface);border-radius:var(--r-2xl);text-align:center;z-index:1;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);width:100%;max-width:380px;padding:44px 40px;position:relative;box-shadow:0 24px 64px #1a192647,0 4px 16px #1a19261f,0 0 0 1px #ffffff1a}.login-icon{filter:drop-shadow(0 4px 8px #0003);margin-bottom:10px;font-size:3rem;display:block}.login-title{color:var(--ink);letter-spacing:-.03em;margin:0 0 7px;font-size:1.7rem;font-weight:800}.login-subtitle{color:var(--ink-3);margin:0 0 28px;font-size:.87rem;line-height:1.6}.login-form{flex-direction:column;gap:14px;display:flex}.login-field{text-align:left;flex-direction:column;gap:5px;display:flex}.login-field-label{color:var(--ink-2);letter-spacing:.03em;font-size:.8rem;font-weight:700}.login-input{border:1.5px solid var(--border-2);border-radius:var(--r-md);width:100%;transition:border-color var(--t-base), box-shadow var(--t-base);color:var(--ink);background:var(--surface);outline:none;padding:13px 16px;font-size:.98rem}.login-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5b6cf91f}.login-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-bd);border-radius:var(--r-md);text-align:center;margin:0;padding:9px 13px;font-size:.84rem}.login-btn{background:var(--gradient);color:#fff;border-radius:var(--r-md);cursor:pointer;transition:opacity var(--t-base), transform var(--t-fast), box-shadow var(--t-base);letter-spacing:.02em;border:none;margin-top:4px;padding:14px;font-size:.97rem;font-weight:700;box-shadow:0 4px 16px #5b6cf966}.login-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 6px 20px #5b6cf980}.login-btn:active:not(:disabled){box-shadow:none;transform:scale(.98)}.login-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.login-register-link{width:100%;color:var(--accent);cursor:pointer;text-align:center;transition:opacity var(--t-fast);border-radius:var(--r-sm);background:0 0;border:none;margin-top:16px;padding:8px;font-size:.84rem;font-weight:500;display:block}.login-register-link:hover{opacity:.7;background:var(--accent-bg)}@media (width<=420px){.login-card{border-radius:var(--r-xl);padding:36px 24px}.login-title{font-size:1.5rem}}.help-overlay{z-index:1000;-webkit-backdrop-filter:blur(6px);background:#1a19268c;justify-content:center;align-items:flex-start;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.help-modal{background:var(--surface);border-radius:var(--r-2xl);width:100%;max-width:600px;box-shadow:var(--sh-lg);margin:auto;overflow:hidden}.help-header{background:var(--gradient);color:#fff;z-index:1;justify-content:space-between;align-items:center;padding:20px 24px;display:flex;position:sticky;top:0}.help-header h2{letter-spacing:.02em;margin:0;font-size:1rem;font-weight:700}.help-close{color:#fff;cursor:pointer;width:32px;height:32px;transition:background var(--t-fast);background:#ffffff2e;border:1px solid #ffffff4d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;display:flex}.help-close:hover{background:#ffffff4d}.help-body{max-height:75vh;padding:8px 24px 28px;overflow-y:auto}.help-section{border-bottom:1px solid var(--border);padding:18px 0}.help-section:last-child{border-bottom:none}.help-section-title{color:var(--ink);letter-spacing:-.01em;align-items:center;gap:9px;margin:0 0 10px;font-size:.9rem;font-weight:700;display:flex}.help-icon{flex-shrink:0;font-size:1.15rem}.help-steps{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.help-steps li{color:var(--ink-3);font-size:.84rem;line-height:1.7}@media (width<=480px){.help-overlay{align-items:flex-start;padding:8px}.help-body{max-height:82vh;padding:6px 16px 20px}.help-modal{border-radius:var(--r-xl)}}.edit-view{background:var(--surface);max-width:768px;min-height:100vh;box-shadow:var(--sh-md);margin:0 auto}.edit-collab-banner{background:var(--gradient);color:#fff;justify-content:space-between;align-items:center;padding:7px 20px;font-size:.82rem;font-weight:600;display:flex}.edit-collab-note{opacity:.85;font-size:.74rem;font-weight:400}.edit-view-header{background:var(--gradient);color:var(--header-fg);padding:0 var(--sp-lg);justify-content:space-between;align-items:center;height:56px;display:flex}.edit-view-header h1{letter-spacing:.04em;margin:0;font-size:1.05rem;font-weight:700}.edit-header-actions{align-items:center;gap:6px;display:flex}.btn-edit-help{color:#ffffffd9;border-radius:var(--r-sm);cursor:pointer;background:0 0;border:1px solid #ffffff4d;padding:5px 12px;font-size:.8rem;font-weight:500;transition:color .15s,border-color .15s,background .15s}.btn-edit-help:hover{color:#fff;background:#ffffff26;border-color:#fff9}.edit-hero{padding:20px var(--sp-lg) 16px;border-bottom:1px solid var(--border)}.edit-hero h2{color:var(--ink);letter-spacing:-.01em;margin:0 0 8px;font-size:1.3rem;font-weight:700}.edit-description{color:var(--ink-3);margin:0 0 10px;font-size:.88rem;line-height:1.6}.edit-meta{flex-wrap:wrap;gap:8px;display:flex}.edit-tabs-wrap{top:0}.edit-tab-content{padding:var(--sp-lg) var(--sp-lg) var(--sp-md);min-height:320px}.edit-footer{text-align:center;color:var(--ink-4);border-top:1px solid var(--border);padding:20px;font-size:.77rem}.edit-view-loading,.edit-view-error{text-align:center;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;padding:40px;display:flex}.edit-spinner{font-size:3rem;animation:1.5s infinite pulse}.edit-error-icon{margin-bottom:8px;font-size:3rem}.edit-view-error h2{color:var(--ink);margin:0;font-size:1.2rem}.edit-view-error p{color:var(--ink-3);margin:0;font-size:.88rem}.setup-bg{background:var(--gradient);min-height:100vh;padding:var(--sp-lg);justify-content:center;align-items:center;display:flex}.setup-card{background:var(--surface);border-radius:var(--r-xl);width:100%;max-width:420px;box-shadow:var(--sh-lg);padding:40px 36px}.setup-lang-switcher{justify-content:center;gap:8px;margin-bottom:20px;display:flex}.btn-lang-setup{background:var(--surface-2);border:1.5px solid var(--border-2);border-radius:var(--r-sm);cursor:pointer;color:var(--ink-3);padding:5px 12px;font-size:.8rem;transition:all .15s}.btn-lang-setup:hover{border-color:var(--accent);color:var(--accent)}.btn-lang-setup.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);font-weight:600}.setup-icon{text-align:center;margin-bottom:8px;font-size:2.4rem}.setup-title{color:var(--ink);text-align:center;margin:0 0 4px;font-size:1.4rem;font-weight:700}.setup-subtitle{color:var(--ink-3);text-align:center;margin:0 0 24px;font-size:.85rem}.setup-form{flex-direction:column;gap:14px;display:flex}.setup-field{flex-direction:column;gap:5px;display:flex}.setup-field label{color:var(--ink-2);font-size:.82rem;font-weight:600}.setup-field input{border:1.5px solid var(--border-2);border-radius:var(--r-sm);color:var(--ink);background:var(--surface);outline:none;padding:10px 14px;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.setup-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #667eea1a}.setup-field-note{color:var(--ink-4);margin:0;font-size:.75rem}.setup-divider{background:var(--border);height:1px;margin:4px 0}.setup-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-bd);border-radius:var(--r-sm);margin:0;padding:8px 12px;font-size:.85rem}.setup-btn{background:var(--gradient);color:#fff;border-radius:var(--r-sm);cursor:pointer;border:none;margin-top:4px;padding:12px;font-size:.95rem;font-weight:600;transition:opacity .2s}.setup-btn:hover:not(:disabled){opacity:.88}.setup-btn:disabled{opacity:.5;cursor:not-allowed}.setup-note{color:var(--ink-3);text-align:center;margin:16px 0 0;font-size:.78rem;line-height:1.5}.register-bg{background:var(--gradient);min-height:100vh;padding:var(--sp-lg);justify-content:center;align-items:center;display:flex}.register-card{background:var(--surface);border-radius:var(--r-xl);width:100%;max-width:420px;box-shadow:var(--sh-lg);padding:40px 36px}.register-lang-switcher{justify-content:center;gap:8px;margin-bottom:20px;display:flex}.btn-lang-reg{background:var(--surface-2);border:1.5px solid var(--border-2);border-radius:var(--r-sm);cursor:pointer;color:var(--ink-3);padding:5px 12px;font-size:.8rem;transition:all .15s}.btn-lang-reg:hover{border-color:var(--accent);color:var(--accent)}.btn-lang-reg.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);font-weight:600}.register-icon{text-align:center;margin-bottom:8px;font-size:2.4rem}.register-title{color:var(--ink);text-align:center;margin:0 0 4px;font-size:1.4rem;font-weight:700}.register-subtitle{color:var(--ink-3);text-align:center;margin:0 0 24px;font-size:.85rem}.register-form{flex-direction:column;gap:14px;display:flex}.reg-field{flex-direction:column;gap:5px;display:flex}.reg-field label{color:var(--ink-2);font-size:.82rem;font-weight:600}.reg-field input{border:1.5px solid var(--border-2);border-radius:var(--r-sm);color:var(--ink);background:var(--surface);outline:none;padding:10px 14px;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.reg-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #667eea1a}.reg-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-bd);border-radius:var(--r-sm);margin:0;padding:8px 12px;font-size:.85rem}.reg-btn{background:var(--gradient);color:#fff;border-radius:var(--r-sm);cursor:pointer;border:none;margin-top:4px;padding:12px;font-size:.95rem;font-weight:600;transition:opacity .2s}.reg-btn:hover:not(:disabled){opacity:.88}.reg-btn:disabled{opacity:.5;cursor:not-allowed}.reg-back{width:100%;color:var(--ink-3);cursor:pointer;text-align:center;background:0 0;border:none;margin-top:16px;padding:8px;font-size:.85rem;transition:color .15s;display:block}.reg-back:hover{color:var(--accent)}.admin-overlay{z-index:200;padding:var(--sp-lg);background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal{background:var(--surface);border-radius:var(--r-xl);width:100%;max-width:520px;max-height:85vh;box-shadow:var(--sh-lg);padding:32px 28px;overflow-y:auto}.admin-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.admin-title{color:var(--ink);margin:0;font-size:1.2rem;font-weight:700}.admin-close{color:var(--ink-3);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;padding:4px;font-size:1.4rem;line-height:1;transition:color .15s,background .15s}.admin-close:hover{color:var(--ink);background:var(--surface-2)}.admin-generate{align-items:center;gap:10px;margin-bottom:24px;display:flex}.admin-count-input{border:1.5px solid var(--border-2);border-radius:var(--r-sm);width:72px;color:var(--ink);background:var(--surface);text-align:center;outline:none;padding:9px 12px;font-size:.9rem;transition:border-color .15s}.admin-count-input:focus{border-color:var(--accent)}.admin-gen-btn{background:var(--gradient);color:#fff;border-radius:var(--r-sm);cursor:pointer;border:none;flex:1;padding:9px 16px;font-size:.9rem;font-weight:600;transition:opacity .2s}.admin-gen-btn:hover:not(:disabled){opacity:.88}.admin-gen-btn:disabled{opacity:.5;cursor:not-allowed}.admin-section-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin:0 0 10px;font-size:.8rem;font-weight:600}.admin-codes-list{flex-direction:column;gap:6px;display:flex}.admin-code-row{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);align-items:center;gap:10px;padding:10px 14px;display:flex}.admin-code-row.used{opacity:.55}.admin-code-row.used .admin-del-btn{opacity:1}.admin-code-text{color:var(--ink);letter-spacing:.06em;flex:1;font-family:Courier New,Courier,monospace;font-size:.95rem;font-weight:600}.admin-code-badge{border-radius:99px;padding:2px 8px;font-size:.72rem;font-weight:600}.admin-code-badge.unused{background:var(--success-bg,#d1fae5);color:var(--success,#059669)}.admin-code-badge.used-badge{background:var(--surface-2);color:var(--ink-4)}.admin-code-user{color:var(--ink-3);font-size:.78rem}.admin-copy-btn{border:1px solid var(--border-2);border-radius:var(--r-sm);color:var(--ink-3);cursor:pointer;white-space:nowrap;background:0 0;padding:4px 10px;font-size:.75rem;transition:all .15s}.admin-copy-btn:hover{border-color:var(--accent);color:var(--accent)}.admin-del-btn{border-radius:var(--r-sm);color:var(--ink-4);cursor:pointer;background:0 0;border:1px solid #0000;padding:4px 8px;font-size:.8rem;transition:all .15s}.admin-del-btn:hover{border-color:var(--danger-bd);color:var(--danger);background:var(--danger-bg)}.admin-empty{text-align:center;color:var(--ink-4);padding:20px 0;font-size:.88rem}.admin-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-bd);border-radius:var(--r-sm);margin-bottom:12px;padding:8px 12px;font-size:.85rem}.app-loading{min-height:100vh;color:var(--ink-3);justify-content:center;align-items:center;font-size:.95rem;display:flex}.app{background:var(--surface);width:100%;min-height:100vh}.app-header{background:var(--header-bg);color:var(--header-fg);padding:0 var(--sp-md);height:var(--header-h);z-index:200;justify-content:space-between;align-items:center;gap:8px;display:flex;position:sticky;top:0}.app-header h1{letter-spacing:.02em;white-space:nowrap;text-shadow:0 1px 3px #00000026;flex-shrink:0;align-items:center;gap:6px;margin:0;font-size:1rem;font-weight:700;display:flex}.header-actions{align-items:center;gap:4px;min-width:0;display:flex}.lang-switcher{border-radius:var(--r-sm);background:#ffffff1f;flex-shrink:0;align-items:center;gap:1px;padding:2px;display:flex}.btn-lang{cursor:pointer;transition:background var(--t-fast), opacity var(--t-fast);opacity:.55;background:0 0;border:none;border-radius:6px;padding:3px 6px;font-size:.9rem;line-height:1}.btn-lang:hover{opacity:.85;background:#ffffff2e}.btn-lang.active{opacity:1;background:#ffffff47}.btn-help,.btn-logout,.btn-admin{color:#ffffffe6;border-radius:var(--r-sm);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast);white-space:nowrap;background:#ffffff1f;border:1px solid #ffffff38;flex-shrink:0;padding:5px 10px;font-size:.76rem;font-weight:500}.btn-help:hover,.btn-logout:hover,.btn-admin:hover{color:#fff;background:#ffffff38;border-color:#ffffff73}.header-username{color:#ffffffa6;white-space:nowrap;text-overflow:ellipsis;max-width:90px;font-size:.74rem;overflow:hidden}.app-layout{min-height:calc(100vh - var(--header-h));flex-direction:column;display:flex}.app-sidebar{background:var(--surface);overflow-y:auto}.app-sidebar-inner{padding:var(--sp-lg)}.app-main{padding:var(--sp-lg);flex:1}@media (width<=1023px){.app-main:has(.health-section){padding:0}}.app-welcome{display:none}@media (width<=1023px){.app{box-shadow:none}.app-layout.view-list .app-main,.app-layout:not(.view-list) .app-sidebar{display:none}.app-main,.app-sidebar-inner{padding:var(--sp-md)}}@media (width<=479px){.app-header{padding:0 var(--sp-sm);gap:6px}.app-header h1{gap:5px;font-size:.92rem}.header-username{display:none}.btn-help,.btn-logout{padding:5px 8px;font-size:.72rem}.app-main,.app-sidebar-inner{padding:var(--sp-sm)}}@media (width>=1024px){.app{max-width:1280px;margin:0 auto;box-shadow:0 0 80px #1a19261a}.app-header{padding:0 var(--sp-xl);border-radius:0}.app-header h1{gap:8px;font-size:1.1rem}.header-actions{gap:6px}.btn-help,.btn-logout,.btn-admin{padding:5px 12px;font-size:.8rem}.app-layout{min-height:calc(100vh - var(--header-h));flex-direction:row;align-items:stretch}.app-sidebar{border-right:1px solid var(--border);width:300px;top:var(--header-h);height:calc(100vh - var(--header-h));scrollbar-width:thin;scrollbar-color:var(--border-2) transparent;background:var(--surface-2);flex-shrink:0;position:sticky;overflow-y:auto}.app-sidebar::-webkit-scrollbar{width:4px}.app-sidebar::-webkit-scrollbar-track{background:0 0}.app-sidebar::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:99px}.app-sidebar-inner{padding:var(--sp-lg) var(--sp-md)}.app-main{min-width:0;padding:var(--sp-xl);background:var(--surface);flex:1;overflow-y:auto}.app-layout.view-list .app-main,.app-layout:not(.view-list) .app-sidebar{display:block}.app-welcome{min-height:calc(100vh - var(--header-h) - 80px);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px;display:flex}.app-welcome-icon{filter:drop-shadow(0 4px 12px #00000014);margin-bottom:8px;font-size:4rem;line-height:1}.app-welcome-title{color:var(--ink-2);letter-spacing:-.01em;font-size:1.15rem;font-weight:700}.app-welcome-sub{color:var(--ink-4);max-width:280px;font-size:.85rem;line-height:1.7}.app-welcome-btn{margin-top:8px;padding:11px 28px;font-size:.9rem}}@media (width>=1280px){.app-sidebar{width:320px}.app-sidebar-inner{padding:var(--sp-lg)}}
