:root{--paper: #F5EEE0;--paper-dark: #EDE3D0;--paper-deep: #E4D8BE;--ink: #2B2420;--ink-soft: #5A4F46;--ink-mute: #8B7F72;--ink-fade: #B8AC9C;--terra: #C65D3F;--terra-soft: #E8B8A8;--sage: #6B8E5A;--sage-soft: #B8CBA8;--mustard: #D9A441;--mustard-soft: #EED8A8;--indigo: #3E5875;--indigo-soft: #B8C4D4;--rose: #B85C6E;--tape-yellow: #E8D082;--tape-pink: #E8B8C0;--tape-blue: #A8C4D4;--tape-green: #B8CBA8}*{box-sizing:border-box;-webkit-font-smoothing:antialiased}html,body{margin:0;padding:0;background:#d9cfb8;font-family:Fraunces,Georgia,serif;color:var(--ink);min-height:100vh}#root{min-height:100dvh}.paper-bg{background:radial-gradient(ellipse at 20% 10%,rgba(255,248,230,.6),transparent 60%),radial-gradient(ellipse at 80% 90%,rgba(200,180,140,.15),transparent 60%),var(--paper);position:relative}.paper-bg:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;mix-blend-mode:multiply;background-image:radial-gradient(circle at 13% 27%,rgba(139,127,114,.08) .5px,transparent 1px),radial-gradient(circle at 76% 43%,rgba(139,127,114,.06) .5px,transparent 1px),radial-gradient(circle at 42% 78%,rgba(139,127,114,.07) .5px,transparent 1px),radial-gradient(circle at 89% 12%,rgba(139,127,114,.05) .5px,transparent 1px);background-size:7px 7px,11px 11px,13px 13px,9px 9px}.paper-card{background:var(--paper);border:1px solid rgba(139,127,114,.18);box-shadow:0 1px #ffffff80 inset,0 1px 2px #64503c0f,0 2px 6px #64503c0a;border-radius:4px;position:relative}.hand{font-family:Caveat,cursive;font-weight:500}.serif{font-family:Fraunces,Georgia,serif}.mono{font-family:IBM Plex Mono,Courier New,monospace}.tape{position:absolute;height:22px;width:60px;background:var(--tape-yellow);opacity:.78;transform:rotate(-3deg);box-shadow:0 1px 2px #00000014}.tape:before,.tape:after{content:"";position:absolute;top:0;bottom:0;width:4px;background-image:linear-gradient(135deg,transparent 33%,rgba(255,255,255,.4) 33%,rgba(255,255,255,.4) 66%,transparent 66%);background-size:6px 6px}.tape:before{left:0}.tape:after{right:0}.tape.pink{background:var(--tape-pink)}.tape.blue{background:var(--tape-blue)}.tape.green{background:var(--tape-green)}.stamp{display:inline-block;padding:3px 10px;border:2px solid var(--terra);color:var(--terra);font-family:IBM Plex Mono,monospace;font-weight:600;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;transform:rotate(-4deg);border-radius:2px;opacity:.85;background:#f5eee066}.dashed-line{border:none;border-top:1px dashed var(--ink-fade);margin:0}.perforated-top{background-image:radial-gradient(circle at 6px 0,#D9CFB8 5px,transparent 5.5px);background-size:12px 12px;background-repeat:repeat-x;background-position:top left}.perforated-bottom{background-image:radial-gradient(circle at 6px 12px,#D9CFB8 5px,transparent 5.5px);background-size:12px 12px;background-repeat:repeat-x;background-position:bottom left}.scribble{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8'><path d='M2 5 Q 10 1, 20 4 T 40 5 T 60 4 T 80 5 T 98 4' stroke='%23C65D3F' stroke-width='2' fill='none' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:bottom left;background-size:100% 6px;padding-bottom:6px}.check-drawn{width:22px;height:22px;border:1.5px solid var(--ink-soft);border-radius:3px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:#ffffff4d;transition:all .15s ease;cursor:pointer}.check-drawn.checked{background:var(--sage);border-color:var(--sage)}.btn-paper{background:var(--paper);border:1.5px solid var(--ink-soft);color:var(--ink);padding:8px 14px;border-radius:999px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;cursor:pointer;transition:all .15s ease}.btn-paper:hover{background:var(--paper-dark);transform:translateY(-1px)}.btn-paper:active{transform:translateY(0)}.btn-paper:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-paper.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-paper.primary:hover{background:var(--ink-soft)}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid var(--ink-fade);border-radius:999px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.5px;color:var(--ink-soft);background:#ffffff59;text-transform:uppercase}.scroll-soft::-webkit-scrollbar{width:4px;height:4px}.scroll-soft::-webkit-scrollbar-thumb{background:#8b7f7240;border-radius:2px}.dragging{opacity:.4}.drag-over-top{box-shadow:0 -3px 0 var(--terra) inset}.drag-over-bot{box-shadow:0 3px 0 var(--terra) inset}@keyframes wiggle{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}.wiggle{animation:wiggle 2s ease-in-out infinite}@keyframes stamp-drop{0%{transform:scale(2) rotate(-20deg);opacity:0}60%{transform:scale(.9) rotate(-4deg);opacity:1}to{transform:scale(1) rotate(-4deg);opacity:.85}}.stamp-anim{animation:stamp-drop .4s ease-out}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fade-up .3s ease-out}.paper-input{background:#fffdf599;border:none;border-bottom:1.5px dashed var(--ink-soft);padding:6px 2px;font-family:Fraunces,serif;font-size:15px;color:var(--ink);outline:none;width:100%;box-sizing:border-box;max-width:100%}.paper-input:focus{border-bottom-color:var(--terra);border-bottom-style:solid}input[type=date].paper-input,input[type=time].paper-input{appearance:none;-webkit-appearance:none}.tab-active-underline{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 6'><path d='M0 3 Q 25 0.5, 50 3 T 100 3' stroke='%23C65D3F' stroke-width='2.5' fill='none' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:bottom center;background-size:100% 4px;padding-bottom:5px}.nav-active-dot{position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--terra)}.app-shell{width:100%;max-width:480px;margin:0 auto;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom);position:relative;overflow-x:hidden}.paper-map iframe{filter:sepia(.4) saturate(.8) hue-rotate(-6deg) brightness(.97)}.hotel-photo{height:90px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid rgba(139,127,114,.15);position:relative}.hotel-photo.sage{background:repeating-linear-gradient(135deg,var(--sage-soft),var(--sage-soft) 14px,rgba(184,203,168,.5) 14px,rgba(184,203,168,.5) 28px)}.hotel-photo.terra{background:repeating-linear-gradient(135deg,var(--terra-soft),var(--terra-soft) 14px,rgba(232,184,168,.5) 14px,rgba(232,184,168,.5) 28px)}.hotel-photo.mustard{background:repeating-linear-gradient(135deg,var(--mustard-soft),var(--mustard-soft) 14px,rgba(238,216,168,.5) 14px,rgba(238,216,168,.5) 28px)}.hotel-photo.indigo{background:repeating-linear-gradient(135deg,var(--indigo-soft),var(--indigo-soft) 14px,rgba(184,196,212,.5) 14px,rgba(184,196,212,.5) 28px)}.notes-pill{padding:6px 10px;background:#e8d08233;border-radius:4px;border-left:2px solid var(--mustard);margin-top:8px}.ticket{background:#fbf7ec;padding:0;margin-bottom:12px;position:relative;overflow:hidden}.ticket-top{padding:12px;border-bottom:1px dashed var(--ink-fade)}.ticket-stub{padding:8px 12px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.ticket-airports{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px}.airport-code{font-family:Caveat,cursive;font-weight:600;font-size:38px;line-height:.9}.plane-divider{display:flex;flex-direction:column;align-items:center;gap:2px}.plane-divider .line{width:36px;border-top:1px dashed var(--ink-fade)}.progress-track{height:9px;background:#8b7f721f;border-radius:999px;overflow:hidden;border:1px solid rgba(139,127,114,.2);margin:8px 0}.progress-fill{height:100%;background-image:linear-gradient(45deg,transparent 25%,rgba(255,255,255,.18) 25%,rgba(255,255,255,.18) 50%,transparent 50%,transparent 75%,rgba(255,255,255,.18) 75%);background-size:12px 12px}.cat-row{margin-bottom:8px}.cat-row .top{display:flex;align-items:center;gap:6px;margin-bottom:3px;font-family:Fraunces,serif;font-size:12px}.cat-row .bar{height:4px;background:#8b7f721f;border-radius:999px}.cat-row .bar>div{height:100%;border-radius:999px;opacity:.85}
