:root{font-family:Segoe UI,Arial,sans-serif;color:#263e32;background:#f7f5ed;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{border:1px solid #cbd3c8;background:#fffdf7;color:#294334;border-radius:9px;padding:9px 13px;cursor:pointer;text-decoration:none;font-weight:600}button:hover,.button:hover{background:#e8eedb;border-color:#6b8456}button:disabled{opacity:.5;cursor:wait}header{padding:20px 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dfe2d5;background:#fffdf8;gap:20px}.brand{font-size:16px;letter-spacing:2px;font-weight:800;text-decoration:none;color:#314d36}.header-actions{display:flex;gap:8px;align-items:center}.identity{font-size:11px;margin:0}.identity select{padding:5px;max-width:140px}main{max-width:1450px;margin:auto;padding:22px 4%}nav{display:flex;align-items:center;gap:12px;font-size:13px}nav button{border:none;background:transparent;padding-left:0}.hero{display:flex;justify-content:space-between;align-items:center;padding:34px 0 28px}.eyebrow,.flag{font-size:11px;font-weight:800;letter-spacing:2px;color:#6d7d53}h1{font-family:Georgia,serif;font-size:clamp(32px,4vw,54px);line-height:1.12;margin:12px 0}h2{font-family:Georgia,serif;font-size:25px;margin:8px 0}h3{font-size:19px;margin:5px 0}p{line-height:1.6}.hero p{margin:10px 0;color:#687262;white-space:pre-line}.metrics{display:grid;grid-template-columns:1.2fr 1fr 1fr;border:1px solid #d8dfcd;border-radius:14px;background:#eeeede;margin-bottom:30px}.metrics>div{padding:18px 23px}.metrics>div+div{border-left:1px solid #d8dfcd}small{display:block;font-size:12px;color:#61705d} .metrics small{font-size:10px;letter-spacing:1.8px;font-weight:800}.metrics p{margin:8px 0 0;font-size:14px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.convoys{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px}.convoy{border:1px solid #bccbb0;border-radius:18px;padding:24px;background:#e4ead8;box-shadow:0 4px 0 #d6dec9}.tone1{background:#eeead8;border-color:#d5c6a0}.tone2{background:#e0e9e6}.tone3{background:#ede2d9}.convoy h2{margin:10px 0 17px}.badge{display:inline-block;background:#f5e7d1;color:#72582f;border-radius:5px;font-size:10px;padding:4px 6px;margin:3px 0;white-space:nowrap}.badge.good{background:#dce9d4;color:#34542e}.mini-cars{display:flex;gap:10px;flex-wrap:wrap;padding:22px 0 5px}.mini-cars button{font-size:42px;background:#ffffff70;border:none;min-width:90px}.mini-cars small{font-size:12px}.convoy footer{margin-top:20px}footer{display:flex;justify-content:space-between;align-items:center;gap:8px}.vehicles{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.vehicle{background:#e8eddf;border:1px solid #cbd7bc;border-radius:18px;padding:18px;flex:1;min-width:300px;max-width:470px}.vehicle.large{max-width:700px;margin:auto;min-width: min(100%,470px)}.vehicle-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.vehicle-title small{font-size:10px;letter-spacing:2px}.car-body{background:#c4d0b8;border:5px solid #82987b;border-radius:55px 55px 27px 27px;padding:18px 14px;box-shadow:-7px 22px 0 -5px #344a3b,7px 22px 0 -5px #344a3b}.windshield{background:#66837a;color:#f0f3e9;border-radius:36px 36px 8px 8px;text-align:center;font-size:10px;letter-spacing:4px;padding:17px;margin:0 5px 18px}.seats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.seat{min-height:114px;border:2px dashed #8a9f7d;border-radius:16px;background:#e7ecd9;text-align:center;padding:10px}.seat>small{font-size:9px;letter-spacing:1px;margin-bottom:10px}.seat>span{font-size:12px;color:#7a8b70}.seat .person{display:block;padding:5px;margin:0;text-align:center;background:transparent}.seat .avatar{margin:0 auto 6px}.seat .icon{margin-top:4px;padding:3px 9px}.occupied{border-style:solid;border-color:#789064;background:#f6f6e9}.boot{border:2px dashed #7b9370;border-radius:10px;padding:13px;margin-top:18px;background:#aebe9e;min-height:90px}.boot>small{font-size:10px;font-weight:800;letter-spacing:1px}.boot>p{text-align:center;font-size:12px;color:#52684d}.vehicle footer{margin-top:16px;font-size:12px}.trays{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:32px 0}.tray,.checklist{border:1px solid #deded0;border-radius:14px;padding:22px;background:#fffdf6}.tray h2{font-size:22px}.person,.item{display:flex;align-items:center;gap:10px;background:#fffdf7;border:1px solid #d9dfce;border-radius:10px;padding:10px;margin:8px 0;cursor:grab}.person>div,.item>div{flex:1}.person strong,.item strong{font-size:13px}.person small,.item small{font-size:10px;margin-top:3px}.avatar{display:grid;place-items:center;width:36px;height:36px;background:#dcac70;border-radius:50%;font-size:12px;font-weight:800;flex-shrink:0}.item>span{font-size:26px}.icon{padding:6px 9px}.hint,.muted{color:#7a8071;font-size:12px}.hint{margin:0 0 15px}.supply{display:flex;gap:15px;align-items:center;border-top:1px solid #e3e5da;padding:14px 0}.supply>div{flex:1}.footnote{font-size:11px;color:#7c8675;text-align:center;margin:35px 0}.over{outline:3px solid #c48b40;outline-offset:3px}.empty{padding:40px;border:2px dashed #c8d1bb;border-radius:16px;line-height:2;color:#708063}dialog{border:1px solid #c5cfbb;border-radius:18px;padding:26px;width:500px;max-width:94vw;max-height:90vh;box-shadow:0 20px 100px #263e3240;background:#fffdf7}dialog::backdrop{background:#223b3070}label{display:block;font-size:13px;font-weight:600;margin:14px 0}input,select,textarea{display:block;width:100%;padding:11px;border:1px solid #c6cebc;border-radius:7px;background:white;color:#263e32;margin-top:6px}textarea{min-height:70px;resize:vertical}.check{display:flex;align-items:center;gap:10px}.check input{width:auto;margin:0}.primary,.login button{background:#355840;color:white}.danger{color:#a34837;margin-right:auto}#form-error,#login-error{color:#a34837;font-size:13px}.presets{display:flex;gap:5px;flex-wrap:wrap;max-height:135px;overflow:auto}.presets button{font-size:12px;padding:6px}.login{max-width:640px;margin:8vh auto}.login h1{margin-top:60px}.login form{max-width:370px;margin:30px 0}.login button{width:100%;padding:14px}.login small{margin-top:40px}#toast:not(:empty){position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#263e32;color:white;padding:14px 24px;border-radius:10px;z-index:10;max-width:90vw;box-shadow:0 5px 30px #0003}details{margin-top:16px}summary{cursor:pointer;font-size:13px}@media(max-width:760px){header{align-items:flex-start;flex-direction:column}.header-actions{flex-wrap:wrap}.metrics,.trays{grid-template-columns:1fr}.metrics>div+div{border-left:0;border-top:1px solid #d8dfcd}.hero{gap:12px}.hero button{font-size:11px}.vehicle{max-width:100%}.section-title{flex-wrap:wrap}}@media print{header,.hero button,button,nav,.hint,.footnote,#toast{display:none!important}main{padding:0}.convoys{display:block}.convoy,.vehicle,.tray,.checklist{break-inside:avoid;margin:16px 0}.trays{display:block}.badge{border:1px solid #aaa}.car-body{box-shadow:none}body{background:white}}

[data-drag]{touch-action:pan-y}.drag-handle{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab;min-width:44px;min-height:44px;padding:8px;font-size:22px}.drag-source{user-select:none}.drag-ghost{max-width:calc(100vw - 8px)}.seat .drag-handle{float:left}.person,.item{min-width:0}.person strong,.item strong{overflow-wrap:anywhere}

.add-yourself{background:#278044;color:white;border-color:#278044;box-shadow:0 3px 0 #16592c;padding:12px 18px}.add-yourself:hover{background:#206936;color:white}.convoy-people{display:flex;gap:8px;flex-wrap:wrap}.convoy-people .person{flex:1;min-width:170px}.essentials-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.claimed{border:1px solid #d5ddcc;background:#eef2e6;border-radius:10px;padding:12px;margin:8px 0}.claimed small{margin:7px 0}.drag-ghost{position:fixed;top:0;left:0;width:240px;z-index:10000;pointer-events:none;box-shadow:0 16px 40px #243c3555;transition:box-shadow .15s;cursor:grabbing}.drag-source{opacity:.25}.drag-saving{opacity:.65}.hero>div{min-width:0}.hero h1{overflow-wrap:anywhere}.hero>button{flex-shrink:0}.error{color:#a34837}[hidden]{display:none!important}.person:not([data-drag]){cursor:default}@media(max-width:760px){.essentials-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.drag-ghost{transition:none}}

.emoji-results{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-height:200px;overflow-y:auto;padding:3px}.emoji-choice{padding:8px 4px;min-width:0}.emoji-choice>span{font-size:25px;display:block}.emoji-choice small{font-size:10px;white-space:normal}.emoji-choice[aria-pressed="true"]{background:#dbeacf;border:2px solid #347143}.emoji-results>.muted{grid-column:1/-1}

.convoy-chat{margin-top:24px;padding:24px;background:#fffdf6;border:1px solid #d3ddc8;border-radius:16px}.chat-history{height:320px;overflow-y:auto;padding:12px;background:#f0f3e8;border-radius:10px;overscroll-behavior:contain}.chat-message{background:white;border:1px solid #d8dfcc;border-radius:12px;padding:12px;margin:0 30px 12px 0}.chat-message.mine{background:#dfedd8;margin:0 0 12px 30px}.chat-message>div{display:flex;justify-content:space-between;gap:16px;font-size:12px}.chat-message time{font-size:11px;color:#62735d}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;font-size:14px}.chat-controls{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:10px}#chat-text{min-height:80px}

.chat-dock{position:fixed;right:20px;bottom:20px;z-index:8;width:370px;max-width:calc(100vw - 32px)}.chat-launcher{display:block;margin-left:auto;background:#315b3c;color:white;padding:13px 18px;border:0;box-shadow:0 6px 24px #233d3440}.chat-launcher:hover{background:#24472e;color:white}.chat-unread{background:#d45b32;color:white;border-radius:99px;padding:3px 7px;margin-left:6px;font-size:12px}.chat-dock .convoy-chat{margin:10px 0 0;padding:16px;box-shadow:0 15px 60px #233d3440;display:flex;flex-direction:column;max-height:calc(100dvh - 110px)}.chat-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.chat-title h2{font-size:22px;margin:0}.chat-title button{padding:6px 10px}.chat-dock .chat-history{height:280px;min-height:70px;flex:1 1 auto}.chat-dock #chat-text{min-height:60px;max-height:130px}.chat-dock .chat-message{margin-right:12px;padding:10px}.chat-dock .chat-message.mine{margin-left:12px;margin-right:0}.chat-dock .chat-message>div{flex-wrap:wrap;gap:3px}.chat-dock .chat-controls small{max-width:130px}.chat-dock.maximized{width:min(760px,calc(100vw - 40px));right:20px}.chat-dock.maximized .convoy-chat{height:calc(100dvh - 110px)}.chat-dock.maximized .chat-history{height:auto;flex:1}.chat-dock.minimized{width:auto}@media(min-width:1100px){body.chat-open main{margin-right:390px;padding-right:24px}}@media(max-width:600px){.chat-dock{right:12px;bottom:12px}.chat-dock .convoy-chat{max-height:calc(100dvh - 95px)}.chat-dock.maximized{right:12px;width:calc(100vw - 24px)}}

.avatar{overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.photo-editor{display:flex;gap:16px;align-items:center;padding:14px;background:#eef2e6;border-radius:12px}.photo-editor .avatar{width:72px;height:72px;font-size:22px}.photo-editor>div:last-child{min-width:0;flex:1}.photo-editor label{margin:0 0 8px}.photo-editor input{padding:6px;font-size:12px}.photo-editor button{margin-top:10px;font-size:12px}

.notes-eye{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;padding:7px;background:#355840;color:white;border-color:#355840;cursor:help}.notes-eye:hover,.notes-eye:focus-visible{background:#24452d;color:white}.notes-eye:focus-visible{outline:3px solid #c48b40;outline-offset:2px}.notes-eye:disabled,.notes-eye:disabled:hover{background:#e5e7e1;color:#9bA398;border-color:#d6dacf;opacity:1;cursor:default}.notes-tooltip{position:fixed;z-index:11000;width:max-content;max-width:min(320px,calc(100vw - 16px));max-height:min(320px,45vh);overflow:auto;background:#263e32;color:#fffdf7;padding:13px 16px;border-radius:10px;box-shadow:0 8px 28px #0004;font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.claimed-title{display:flex;gap:12px;align-items:center;justify-content:space-between}.claimed-title strong{min-width:0;overflow-wrap:anywhere}@media(pointer:coarse){.notes-eye{flex-basis:44px;width:44px;height:44px}}

.identity-reminder{position:fixed;right:16px;top:16px;z-index:20;display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #bc8b43;border-radius:12px;background:#fff4d9;color:#513d21;box-shadow:0 6px 24px #263e3228;max-width:calc(100vw - 32px)}.identity-reminder strong{font-size:14px}.identity-reminder button{font-size:12px;flex-shrink:0}.needs-identity header{padding-top:96px}@media(max-width:420px){.identity-reminder{gap:8px;padding:12px}.identity-reminder strong{font-size:13px}.identity-reminder button{padding:8px}}
