:root{--bg:#f8f7f2;--paper:#fffefa;--ink:#203930;--muted:#738178;--green:#246654;--light:#e9f0e9;--line:#e0e6dc;--amber:#bd8a34;--danger:#a74536;--radius:20px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0}button:focus-visible,a:focus-visible{outline:3px solid #dcad57;outline-offset:3px}button:disabled{opacity:.45;cursor:default}h1,h2,h3,p{margin:0}h1{font-size:32px;letter-spacing:-1.2px;line-height:1.15}h2{font-size:22px;letter-spacing:-.5px}h3{font-size:17px}a{color:var(--green)}svg.ico{width:21px;height:21px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.shell{max-width:1220px;margin:auto;display:flex;min-height:100vh}.sidebar{width:210px;padding:34px 20px;position:fixed;inset:0 auto 0;display:flex;flex-direction:column;gap:6px;border-right:1px solid var(--line);background:var(--bg);z-index:10}.brand{display:flex;gap:10px;align-items:center;font-size:18px;font-weight:750;margin-bottom:32px}.brand-mark{display:grid;place-items:center;background:var(--green);color:white;width:39px;height:42px;border-radius:12px}.nav-item{background:transparent;text-align:left;padding:13px 15px;border-radius:13px;color:var(--muted);display:flex;gap:13px;align-items:center;font-weight:600}.nav-item.active{background:var(--light);color:var(--green)}.sidebar-foot{margin-top:auto;color:var(--muted);font-size:11px;padding:16px}.main{margin-left:210px;padding:38px 42px 65px;width:calc(100% - 210px)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:25px}.eyebrow{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;font-weight:750;color:var(--green);margin-bottom:8px}.muted{color:var(--muted)}.sub{color:var(--muted);margin-top:10px;font-size:14px}.btn{padding:11px 16px;min-height:44px;border-radius:12px;display:inline-flex;justify-content:center;gap:9px;align-items:center;background:var(--green);color:#fff;font-weight:650;white-space:nowrap}.btn.secondary{background:var(--light);color:var(--green)}.btn.ghost{background:transparent;color:var(--green);border:1px solid var(--line)}.btn.danger{background:#faece5;color:var(--danger)}.btn.small{min-height:35px;font-size:12px;padding:7px 12px}.icon-btn{background:var(--light);color:var(--green);width:40px;height:40px;border-radius:12px;display:inline-grid;place-items:center;flex-shrink:0}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:23px}.grid{display:grid;gap:18px}.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}.section{margin-top:28px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.hero{background:var(--green);color:white;display:grid;grid-template-columns:1.1fr 1fr;overflow:hidden;position:relative;min-height:218px;border:0;padding:30px}.hero h2{font-size:27px;line-height:1.2;max-width:300px}.hero p{color:#d0e2d8;margin:12px 0 21px;font-size:14px;max-width:290px}.hero .btn{background:#f3dfb4;color:#294d3d}.hero svg.art{position:absolute;right:12px;top:0;width:43%;height:100%;opacity:.85}.stat{padding:18px}.stat .value{font-size:31px;font-weight:750;letter-spacing:-1px;line-height:1.3;margin-top:10px}.stat .label{font-size:12px;color:var(--muted)}.stat .ico{color:var(--green)}.pill{display:inline-flex;gap:5px;align-items:center;border-radius:8px;padding:4px 9px;background:var(--light);color:var(--green);font-size:11px;font-weight:750}.pill.amber{background:#f7eed9;color:#906423}.pill.red{background:#f8e8e1;color:var(--danger)}.course-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.course-card h3{margin-bottom:5px}.course-card .map-mini{width:100%;height:152px;border-radius:14px;overflow:hidden;background:#edf3e9;margin:12px 0}.course-card .map-mini svg{width:100%;height:100%}.course-card .btn{margin-top:12px}.row{display:flex;align-items:center;gap:13px}.between{justify-content:space-between}.avatar{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;font-size:24px;background:#e9efdd;color:var(--green);overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.dog-card{cursor:pointer}.empty{text-align:center;padding:32px 20px}.empty .ico{width:38px;height:38px;color:var(--green);margin-bottom:13px}.empty p{max-width:350px;margin:8px auto 18px;color:var(--muted);font-size:14px}.notice{background:var(--light);color:#476452;border-radius:13px;padding:13px 16px;font-size:12px}.notice.warn{background:#f8eedb;color:#886728}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:650;color:#566b5c}.field.full{grid-column:1/-1}.field input,.field select,.field textarea,.search{border:1px solid #d7dfd2;background:var(--paper);border-radius:11px;padding:11px 12px;color:var(--ink);width:100%;outline:none;min-height:44px}.field input:focus,.field textarea:focus,.field select:focus,.search:focus{border-color:var(--green);box-shadow:0 0 0 3px #24665414}.field textarea{min-height:90px;resize:vertical}.field input[type=checkbox]{width:18px;min-height:18px}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.tab{border-radius:10px;min-height:38px;padding:7px 14px;background:transparent;border:1px solid var(--line);color:var(--muted);font-weight:650}.tab.active{background:var(--green);border-color:var(--green);color:white}.exercises{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.exercise{padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:15px;text-align:left;color:var(--ink)}.exercise img{width:100%;height:154px;object-fit:contain;margin:7px 0;mix-blend-mode:multiply}.exercise h3{font-size:12px;line-height:1.45;min-height:35px}.exercise .pill{font-size:10px}.overlay-backdrop{position:fixed;inset:0;z-index:100;background:#152c2866;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px)}.modal{width:100%;max-width:580px;max-height:90vh;overflow:auto;background:var(--paper);border-radius:24px;padding:25px;box-shadow:0 20px 90px #172c2833}.modal.wide{max-width:820px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:19px}.modal-foot{display:flex;gap:9px;justify-content:flex-end;margin-top:22px}.modal .sign-detail{width:180px;height:230px;object-fit:contain;float:left;margin:0 19px 14px 0}.description{font-size:14px;line-height:1.8;white-space:pre-line}.record{border-top:1px solid var(--line);padding:15px 0}.record:first-child{border-top:0}.record h3{font-size:14px}.record small{color:var(--muted)}.course-builder{display:grid;grid-template-columns:1.15fr 1fr;gap:20px}.builder-map{position:sticky;top:18px;align-self:start}.builder-map svg{display:block;width:100%;background:#edf3e9;border-radius:18px;touch-action:none}.station-list{max-height:580px;overflow:auto}.station-row{padding:10px 0;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center}.station-row img{width:35px;height:44px;object-fit:contain}.station-num{display:grid;place-items:center;width:25px;height:25px;font-size:11px;border-radius:50%;background:var(--green);color:#fff;flex-shrink:0}.station-row .title{font-size:12px;flex:1}.station-row .icon-btn{width:27px;height:30px;border-radius:8px}.station-row .ico{width:15px}.validation{font-size:12px}.validation ul{padding-left:18px;margin:8px 0}.fullmap{position:fixed;inset:0;background:#e5eee0;z-index:50;overflow:hidden}.fullmap svg.course-svg{width:100%;height:100%;touch-action:none;user-select:none}.map-top,.map-bottom{position:absolute;left:max(15px,env(safe-area-inset-left));right:max(15px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none}.map-top{top:max(15px,env(safe-area-inset-top))}.map-bottom{bottom:max(15px,env(safe-area-inset-bottom))}.map-top>*,.map-bottom>*{pointer-events:auto}.map-caption{background:#fffef9ed;border:1px solid #d4e0ce;border-radius:15px;padding:11px 15px;box-shadow:0 4px 25px #31472b12;max-width:65%}.map-caption h3{font-size:14px}.map-caption small{font-size:10px;color:var(--muted)}.map-controls{background:#fffef9f5;display:flex;align-items:center;gap:5px;padding:6px;border-radius:14px;box-shadow:0 4px 25px #31472b12}.map-controls .icon-btn{background:transparent}.map-station{cursor:pointer}.map-score{font-size:11px;font-weight:700}.timer{font-variant-numeric:tabular-nums;font-size:21px;font-weight:750;min-width:59px;text-align:center}.timer.over{color:var(--danger)}.score-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:16px 0}.score-grid button{min-height:44px;border-radius:11px;background:var(--light);color:var(--green);font-weight:750;font-size:17px}.score-grid button.selected{background:var(--green);color:white}.score-grid button.zero{background:#f7e6dc;color:#a55e37}.score-grid button.selected.zero{background:var(--danger);color:white}.session-detail{display:grid;gap:9px}.session-station{display:flex;gap:12px;padding:13px;border:1px solid var(--line);border-radius:14px;cursor:pointer}.session-station img{width:35px;height:45px;object-fit:contain}.session-station .info{flex:1;font-size:12px}.session-station .note{color:var(--muted);margin-top:4px}.bar{height:8px;background:#e6ece1;border-radius:9px;overflow:hidden;margin:7px 0}.bar span{display:block;height:100%;background:var(--green);border-radius:9px}.progress-row{margin:18px 0;font-size:12px}#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#203930;color:white;border-radius:14px;padding:12px 18px;font-size:13px;z-index:300;max-width:85%;display:none;box-shadow:0 8px 40px #20393033}.smallprint{font-size:11px;color:var(--muted)}.value-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:20px}.value-list dt{font-size:11px;color:var(--muted)}.value-list dd{margin:1px 0;font-size:14px;overflow-wrap:anywhere}.photo-upload{margin-bottom:17px}.chips{display:flex;gap:8px;flex-wrap:wrap}.dog-select{max-width:190px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-size:13px}.print-page{display:none}body.map-open{overflow:hidden}body.map-open .shell{display:none}
@media(max-width:900px){.main{padding:30px 24px;margin-left:180px;width:calc(100% - 180px)}.sidebar{width:180px;padding:30px 13px}.exercises{grid-template-columns:repeat(3,1fr)}.course-builder{grid-template-columns:1fr}.builder-map{position:relative;top:0}.hero svg.art{opacity:.4}.hero{grid-template-columns:1fr}}
@media(max-width:650px){body{font-size:14px}.shell{display:block}.sidebar{width:100%;height:70px;inset:auto 0 0;padding:5px 7px calc(5px + env(safe-area-inset-bottom));flex-direction:row;justify-content:space-around;gap:0;border-right:0;border-top:1px solid var(--line);height:calc(70px + env(safe-area-inset-bottom));background:#fffefaf5}.brand,.sidebar-foot{display:none}.nav-item{display:flex;flex-direction:column;font-size:10px;padding:7px 10px;gap:4px;border-radius:12px;min-width:52px}.nav-item .ico{width:21px;height:21px}.main{margin:0;padding:25px 18px 105px;width:100%}h1{font-size:28px}.page-head{margin-bottom:21px}.card{padding:18px}.hero{padding:25px;min-height:235px}.hero h2{font-size:25px;max-width:210px}.hero svg.art{width:45%;right:-4px;opacity:.65}.hero p{max-width:220px}.cols3{gap:9px}.stat{padding:14px 11px}.stat .value{font-size:25px}.stat .label{font-size:10px}.cols2{grid-template-columns:1fr}.form-grid{gap:12px}.exercises{grid-template-columns:repeat(2,1fr);gap:11px}.exercise img{height:140px}.page-head>.btn{font-size:12px;padding:10px 12px}.modal{padding:20px;border-radius:22px;max-height:94dvh}.overlay-backdrop{padding:10px}.modal .sign-detail{float:none;display:block;margin:0 auto 16px;width:160px;height:190px}.map-top{top:10px;left:10px;right:10px}.map-caption{padding:9px 11px;max-width:69%}.map-caption h3{font-size:12px}.map-caption small{font-size:9px}.map-controls{gap:0;padding:4px}.map-controls .icon-btn{width:35px;height:35px}.map-bottom{left:10px;right:10px;bottom:12px;flex-wrap:wrap}.map-bottom .btn{font-size:12px;padding:10px 12px}.timer{font-size:18px;min-width:52px}.fullmap .map-hint{display:none}.value-list{gap:12px}.btn{font-size:13px}}
@media print{
  html,body{margin:0!important;padding:0!important;background:#fff!important}
  .shell,.fullmap,#overlay,#toast{display:none!important}
  .print-page{display:flex!important;align-items:center;justify-content:center;width:273mm;height:186mm;break-inside:avoid;overflow:hidden;color:#3f342a}
  .print-page.portrait{width:186mm;height:273mm}
  .print-page svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%}
  @page{size:A4 landscape;margin:12mm}
}
/* Professional field theme: quiet depth, white surfaces and a green club identity. */
:root{--bg:#f2f6f3;--paper:#ffffff;--ink:#193b32;--muted:#6b7e75;--green:#226c56;--light:#e8f2ec;--line:#dce7df;--radius:18px}
body{background:radial-gradient(ellipse at 95% 0%,#d9ebe1a8 0,transparent 43%),radial-gradient(ellipse at 0% 75%,#e5ede799 0,transparent 43%),linear-gradient(155deg,#f7faf8 0%,#edf3ef 100%);background-attachment:fixed}
.sidebar{background:#f8fbf9e8;backdrop-filter:blur(18px);border-color:#d8e5de}.brand-mark{background:linear-gradient(145deg,#2c8165,#194d3e);box-shadow:0 5px 15px #24665420}.nav-item{border:1px solid transparent}.nav-item.active{background:#e3eee7;border-color:#d5e4da;color:#1d624d}.nav-item:hover{color:#226c56;background:#e8f1eb}.sidebar-foot{line-height:1.9}
.main{position:relative}.card{background:#ffffffef;border-color:#dce7df;box-shadow:0 5px 22px #213f2d05}.course-card,.dog-card{transition:box-shadow .2s,border-color .2s}.course-card:hover,.dog-card:hover{border-color:#c1d7c9;box-shadow:0 8px 24px #213f2d0c}.eyebrow{color:#427d65;letter-spacing:1.7px}h1{font-weight:760;letter-spacing:-1.25px}h2{font-weight:720}.btn{background:linear-gradient(145deg,#2b7b60,#20634d);box-shadow:0 3px 10px #23614912}.btn.secondary,.btn.ghost,.btn.danger{box-shadow:none}.btn.secondary{background:#e8f2ec}.btn.ghost{background:#ffffff88}.icon-btn{background:#edf4ef}.pill{border:1px solid #dce9df;background:#eef5ee;color:#2c6a4c}.stat{background:#fffffff5}.stat .ico{width:22px;height:22px;color:#598b72}.stat .value{color:#234d3b}.avatar{background:linear-gradient(145deg,#e6f0e9,#dcebe0);border:1px solid #d5e5d9}.notice{background:#eaf2ec;border:1px solid #dce7dc}.notice.warn{border-color:#eee0be;background:#fbf4e5}.tab{background:#ffffff90}.tab.active{background:#226c56}
.hero{background:radial-gradient(ellipse at 92% 8%,#5ca08740 0,transparent 56%),linear-gradient(125deg,#193f35 0%,#23634e 57%,#2b775c 100%);border:1px solid #205744;box-shadow:0 12px 35px #244d3920;isolation:isolate}.hero::before{content:"";position:absolute;inset:-90% -15% -70% 30%;border:1px solid #abd2bd1f;border-radius:50%;transform:rotate(-35deg);z-index:-1}.hero::after{content:"";position:absolute;inset:-40% -38% -45% 43%;border:1px solid #abd2bd26;border-radius:50%;transform:rotate(-30deg);z-index:-1}.hero .eyebrow{letter-spacing:2px}.hero p{color:#c9dfd2}.hero .btn{background:#f4e4bf;box-shadow:0 3px 12px #0c2c2226;border:1px solid #ffedc3;color:#234f3b}.hero svg.art{opacity:.95}.course-card .map-mini{border:1px solid #dfe8da;background:linear-gradient(135deg,#edf4e6,#e4eee2)}
.fullmap{background:radial-gradient(ellipse at 35% 20%,#eff6ec,#dbe7d7)}.map-caption,.map-controls{background:#fffffff2;border:1px solid #d5e4d7;box-shadow:0 6px 24px #223f2c0a;backdrop-filter:blur(12px)}.builder-map svg{background:#eaf2e5}.modal{background:#ffffff;box-shadow:0 20px 90px #1a3a2936}.overlay-backdrop{background:#152f275e;backdrop-filter:blur(7px)}.exercise{background:#ffffff;box-shadow:0 3px 10px #213f2d03;border-color:#dce7df}.exercise:hover{border-color:#b7cdbb}.field input,.field select,.field textarea,.search{background:#fcfefc;border-color:#d8e4da}.session-station{background:#ffffff}.bar{background:#e7efe8}
@media(max-width:650px){.sidebar{background:#ffffffed;border-color:#d8e4db;box-shadow:0 -4px 22px #25442e07;backdrop-filter:blur(18px)}.nav-item{border:0}.nav-item.active{background:#e4eee6}.hero{box-shadow:0 9px 27px #244d3917}.hero svg.art{right:-12px;opacity:.83}.page-head h1{font-size:27px}.stat{box-shadow:0 3px 16px #213f2d04}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{body{background:white}.card{box-shadow:none}}

.fullmap.paper{background:#fff}.paper-course .map-station{cursor:pointer}

/* Home: a quiet sports dashboard, with the training field as a line drawing. */
body.home-page{
  background-color:#edf1f4;
  background-image:linear-gradient(180deg,#f6f8fae8,#edf1f4b3),
    repeating-linear-gradient(0deg,transparent 0 91px,#96a5ac10 91px 92px),
    repeating-linear-gradient(90deg,transparent 0 91px,#96a5ac10 91px 92px);
  background-attachment:fixed;
}
.home-page .sidebar{background:#f9fbfceF;border-color:#dce4e8}
.home-page .page-head{margin-bottom:28px}
.home-page .eyebrow{color:#58776c;letter-spacing:1.9px;font-size:10px}
.home-page .page-head h1{color:#183831;letter-spacing:-1px}
.home-page .page-head .sub{color:#75858b}
.home-page .card{border-color:#dfe6e9;border-radius:16px;box-shadow:0 4px 18px #25394305}
.home-page .hero{
  background:linear-gradient(112deg,#152c2c 0%,#193f36 70%,#214b3d 100%);
  border:1px solid #1d3b35;border-radius:20px;min-height:260px;padding:34px;
  box-shadow:0 12px 32px #1a34351a;
}
.home-page .hero::before,.home-page .hero::after{content:none}
.home-page .hero>div{position:relative;z-index:1}
.home-page .hero .eyebrow{color:#adc9b9!important;font-size:10px;letter-spacing:2.2px}
.home-page .hero h2{font-size:30px;line-height:1.22;font-weight:650;letter-spacing:-.65px;color:#f5f8f6}
.home-page .hero p{color:#bdcec5;line-height:1.7;max-width:290px;font-size:13px;margin:14px 0 24px}
.home-page .hero .btn{background:#f0e4cc;border-color:#f3e9d7;color:#264b3d;border-radius:10px;box-shadow:none}
.home-page .hero svg.art{right:-6px;top:0;width:51%;height:100%;opacity:1;pointer-events:none}
.home-page .stat{padding:20px;background:#ffffff;position:relative}
.home-page .stat .ico{color:#668678;width:20px;height:20px}
.home-page .stat .value{color:#213f37;font-size:30px;line-height:1.2;margin-top:13px;font-weight:700}
.home-page .stat .label{color:#78858c;font-size:11px;margin-top:6px;line-height:1.55}
.home-page .section-head h2{font-size:19px;font-weight:650;color:#2c453d;letter-spacing:-.3px}
.home-page .section-head .btn{font-size:11px}
.home-page .course-card .map-mini{background:#fff;border-color:#e3e9e7;border-radius:10px}
.home-page .card.empty{padding:30px 20px;background:#ffffffd9}
.home-page .empty h3{font-weight:600;color:#365048}
.home-page .empty p{font-size:13px;color:#7d8b8e}
@media(max-width:900px){.home-page .hero svg.art{width:48%;opacity:.65}}
@media(max-width:650px){
  .home-page .main{padding-top:28px}
  .home-page .sidebar{background:#ffffffed;box-shadow:0 -3px 18px #24394406}
  .home-page .page-head{margin-bottom:23px}
  .home-page .page-head h1{font-size:27px}
  .home-page .hero{padding:26px;min-height:254px;border-radius:18px}
  .home-page .hero h2{font-size:27px;max-width:245px}
  .home-page .hero p{max-width:235px;font-size:12px}
  .home-page .hero svg.art{width:75%;right:-100px;opacity:.35}
  .home-page .stat{padding:17px 12px;border-radius:13px}
  .home-page .stat .value{font-size:25px;margin-top:10px}
  .home-page .stat .label{font-size:10px}
  .home-page .section-head h2{font-size:18px}
}
@media print{body.home-page{background:#fff}}

/* The drawing owns its own grid row; toolbar rows never cover the course. */
.fullmap{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:0}
.fullmap svg.course-svg{grid-row:2;display:block;width:100%;height:100%;min-width:0;min-height:0}
.fullmap.paper{background:#fff}
.map-top,.map-bottom{position:static;left:auto;right:auto;top:auto;bottom:auto;width:100%;padding:8px 12px;background:#f6faf8;pointer-events:auto;z-index:1}
.map-top{grid-row:1;align-items:center;border-bottom:1px solid #e2ebe5;flex-wrap:nowrap}
.map-bottom{grid-row:3;align-items:center;border-top:1px solid #e2ebe5;flex-wrap:wrap}
.map-top .map-caption{background:transparent;border:0;box-shadow:none;max-width:55%;width:auto;padding:0}
.map-top .map-controls{margin-left:auto;flex-shrink:0}
.map-bottom .map-caption{background:transparent;border:0;box-shadow:none;padding:0;max-width:45%}
.map-controls{background:#fff;border-color:#dce7df;box-shadow:none}
.map-tools-toggle{box-shadow:none}
.fullmap.tools-hidden .map-top{justify-content:flex-end;padding:4px 8px}
.fullmap.tools-hidden .map-top .map-caption,.fullmap.tools-hidden .map-bottom{display:none}
.fullmap.tools-hidden .map-controls{padding:0;border:0;background:transparent}
.fullmap.tools-hidden .map-controls>:not(.map-tools-toggle){display:none}
.fullmap.tools-hidden .map-tools-toggle{min-height:32px;padding:4px 10px}
.home-dog-field{margin-bottom:12px;max-width:320px}
.map-station.drop-target{transition:transform .16s ease-out}
.map-station.drop-target>rect{stroke:#2e8064;stroke-width:3;fill:#e9f4ed}
.map-station.dragging{opacity:.85;pointer-events:none}
.map-station.dragging>rect{stroke:#226c56;stroke-width:3}
@media(max-width:650px){
  .sidebar{height:calc(64px + env(safe-area-inset-bottom));padding:4px 7px calc(4px + env(safe-area-inset-bottom));align-items:center}
  .android-app .sidebar{height:64px;padding:4px 7px}
  .home-page .section-head{flex-wrap:wrap}
  .map-top{padding:7px 10px;flex-wrap:wrap;gap:5px}
  .map-top .map-caption{max-width:100%;width:100%;padding:0}
  .map-top .map-controls{padding:3px}
  .map-top .map-controls .icon-btn{width:34px;height:32px}
  .map-bottom{padding:7px 10px;gap:7px}
  .map-bottom .actions{gap:6px}
}
@media(orientation:landscape) and (max-height:600px){
  .map-top{padding:4px 8px}
  .map-top .map-caption h3{font-size:11px}
  .map-top .map-controls{padding:2px}
  .map-top .icon-btn{width:32px;height:30px}
  .map-top .map-tools-toggle{min-height:30px;padding:4px 9px}
  .map-bottom{padding:4px 8px}
  .map-bottom .map-hint{display:none}
  .map-bottom .btn{min-height:32px;padding:5px 10px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.map-station.drop-target{transition:none}}
.modal-foot{flex-wrap:wrap}
.course-photo-preview img{display:block;width:100%;max-height:250px;object-fit:contain;margin-bottom:16px;border-radius:12px}
.photo-station-row{width:100%;display:flex;gap:10px;align-items:center;text-align:left;padding:10px;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line)}
.photo-station-row img{width:36px;height:46px;object-fit:contain}
.photo-station-row>span:nth-last-child(2){flex:1}
.animation-frame{display:block;width:100%;height:min(560px,72dvh);border:0;border-radius:15px;background:var(--paper)}
.form-grid>.full{grid-column:1/-1}
