:root{color-scheme:light;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#293c35;background:#334d43;--paper:#faf3df;--line:#d2c6a5;--green:#476d50}*{box-sizing:border-box}body{margin:0;height:100dvh;display:flex;flex-direction:column;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button,a,input,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;background:#fff9e9;color:#2c4538;padding:10px 13px;font-weight:700;min-height:42px}button:hover{background:#e8eed6}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #e1a34e;outline-offset:2px}a{color:inherit}header{height:76px;flex:none;background:var(--paper);display:flex;align-items:center;gap:14px;padding:8px 22px;border-bottom:3px solid #aeb69b}.cafe-link{text-decoration:none;border:1px solid var(--line);border-radius:9px;padding:11px}.brand{display:flex;flex:1;flex-direction:column;gap:3px}.brand small{font-size:10px;letter-spacing:2px;color:#66806c}.brand strong{font-size:22px;letter-spacing:-.6px}.gold{white-space:nowrap;font-size:14px}.gold b{font-size:21px}.gold i{font-style:normal;color:#d9a233;text-shadow:0 2px #a67426}#notice{min-height:29px;background:#dce6cb;font-size:12px;display:flex;align-items:center;justify-content:center;gap:10px;padding:3px 12px;text-align:center}#notice button{padding:2px 8px;min-height:24px;font-size:12px}#notice.error{background:#f1d1ba;color:#753b2b}main{flex:1;min-height:0;display:flex}.world{flex:1;min-width:0;position:relative;overflow:hidden;background:#789856}canvas{width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none}.world-label{position:absolute;top:16px;left:18px;pointer-events:none;display:flex;flex-direction:column;gap:3px;background:#faf3dfed;padding:10px 14px;border-radius:6px;border-bottom:3px solid #adb78c}.world-label span{font-size:13px;font-weight:800}.world-label small{font-size:11px;color:#62745a}#harvest-fx{position:absolute;left:50%;top:35%;transform:translateX(-50%);background:#ffefb7;border:2px solid #bf9549;border-radius:12px;padding:12px 18px;font-weight:800;pointer-events:none;opacity:0;transition:opacity .2s}#harvest-fx.show{opacity:1}aside{flex:0 0 320px;min-width:0;background:var(--paper);display:flex;flex-direction:column;border-left:3px solid #adb78c}.panel-heading{padding:12px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);flex:none}.panel-heading h2{font-size:19px;margin:0;flex:1}.panel-heading button{font-size:22px;padding:2px 12px}#panel-content{overflow-y:auto;overscroll-behavior:contain;padding:14px;flex:1;min-height:0}.intro{font-size:13px;line-height:1.6;color:#637363;margin:0 0 14px}.card{padding:13px;border:1px solid var(--line);border-radius:11px;background:#fff9eb;margin-bottom:10px}.card h3{font-size:14px;margin:0 0 5px}.card p{font-size:12px;line-height:1.5;margin:4px 0 10px;color:#637363}.card button{width:100%;margin-top:5px}.card .row{display:flex;gap:6px}.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}.slots button.active{background:var(--green);color:white}.big-icon{width:42px;height:42px;image-rendering:pixelated;float:right}.choices{display:grid;grid-template-columns:1fr 1fr;gap:6px}.choices button{font-size:12px;text-align:left}.timer{font-size:25px;font-variant-numeric:tabular-nums;margin:10px 0;color:#47714c}.pill{font-size:11px;background:#e0e6c9;border-radius:10px;padding:3px 8px;display:inline-block}footer{background:var(--paper);padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none;border-top:3px solid #adb78c}nav{display:flex;gap:6px}nav button[aria-pressed=true]{background:var(--green);color:#fff8df}.footer-note{font-size:11px;color:#77816b;max-width:230px;text-align:right}dialog{max-width:420px;width:calc(100% - 30px);border:2px solid #8ca17f;border-radius:12px;background:var(--paper);color:#293c35;max-height:90dvh;overflow:auto}dialog::backdrop{background:#172e25ad}dialog p{font-size:13px;line-height:1.6}dialog textarea{width:100%;padding:10px;margin:10px 0;min-height:65px;resize:vertical;border:1px solid var(--line);border-radius:5px}#portrait{display:none}#update{background:#f4cc77;white-space:nowrap}[hidden]{display:none!important}
@media(max-width:900px){header{height:56px;padding:5px 12px;gap:8px}.brand strong{font-size:17px}.brand small{font-size:8px;letter-spacing:1px}header button,.cafe-link{padding:7px 9px;font-size:12px;min-height:38px}.gold{font-size:11px}.gold b{font-size:17px}aside{flex-basis:290px;max-width:46%}footer{padding:5px 10px}nav{gap:5px;flex:1}nav button{font-size:12px;padding:6px 10px;flex:1}.footer-note{display:none}.world-label{top:8px;left:8px;padding:6px 10px}.world-label small{display:none}#notice{font-size:11px;min-height:24px}.panel-heading{padding:7px 10px}.panel-heading h2{font-size:16px}#panel-content{padding:10px}.card{padding:10px}.intro{font-size:12px}.slots{gap:4px}.slots button{font-size:12px;padding:5px}#update{top:62px}}
@media(max-height:400px) and (orientation:landscape){header{height:47px}.brand small{display:none}footer{padding:3px 8px}nav button{min-height:38px}.world-label{padding:4px 8px}.world-label span{font-size:11px}#notice{min-height:22px}.panel-heading button{min-height:32px}.timer{font-size:21px}}
@media(orientation:portrait) and (max-width:700px){#portrait{display:grid;position:fixed;inset:0;background:#344e43;place-items:center;color:#fff2ce;z-index:20;padding:30px;text-align:center}#portrait p{line-height:1.7}#portrait a{display:inline-block;padding:15px}.turn-phone{font-size:60px}dialog{z-index:25}}
#fishing-switch{font-size:12px;padding:5px 9px}
.world-tools{position:absolute;right:8px;top:8px;display:flex;gap:5px}.world-tools button{font-size:11px;min-height:34px;padding:5px 8px;background:#faf3dfed}
.world-tools button[aria-pressed=true]{background:#426c57;color:#fff8df}
.world-label{max-width:calc(100% - 150px)}.world-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.farm-minimap{width:100%;height:auto;aspect-ratio:10/7;image-rendering:pixelated;border:2px solid #a8b68e;border-radius:8px;background:#8ca762}
.map-travel{display:flex;gap:5px;margin-top:10px}.map-travel select{flex:1;min-width:0;background:#fff9e9;border:1px solid #d2c6a5;border-radius:7px;font:inherit;font-size:12px;padding:5px;color:#2c4538}.map-travel button{font-size:12px;padding:5px 8px}
.bulk-action{background:#e2ebd7;color:#355d41;margin:5px 0;font-size:12px;flex-shrink:0}
#panel-content>button.bulk-action{order:1}
@media(max-height:450px) and (orientation:landscape){.map-hint{display:none}.farm-minimap{height:75px;object-fit:contain}.map-travel{margin-top:6px}.map-travel button{min-height:36px}.world-label{padding:6px;max-width:calc(100% - 148px)}.world-label span{font-size:10px}}
#panel[aria-busy=true] .panel-heading h2::after{content:' …';color:#789477}
#panel[aria-busy=true] #panel-content{cursor:progress}
.slots button{transition:background .15s,color .15s}.card button:enabled:active{transform:translateY(1px)}
#panel-content[data-mode=fishing]{background:linear-gradient(180deg,#eef0dc,#faf3df);}
.fishing-card{background:#fffcf1;border:1px solid #c3d0b8;box-shadow:0 3px 0 #d5ddc6;padding:16px;border-radius:14px}
.fishing-card h3{color:#6c8069;font-size:10px;letter-spacing:1.2px}
.fishing-card .fishing-help{line-height:1.65;margin:12px 0 18px}
.fishing-steps{display:flex;gap:4px;margin-bottom:12px;white-space:nowrap}
.fishing-steps span{flex:1;font-size:10px;font-weight:700;text-align:center;padding:7px 2px;border-radius:6px;background:#edf0e4;color:#85917e}
.fishing-steps .current{background:#3d6754;color:#fff9df}.fishing-steps .done{background:#dfebd2;color:#526f44}
.fishing-card .fishing-status{font-weight:750;color:#355d41;min-height:42px;margin:0 0 8px;line-height:1.5}
.fishing-meter{width:100%;height:28px;image-rendering:pixelated;margin:0 0 12px}
.fishing-controls{display:grid;grid-template-columns:1fr;gap:7px}.fishing-controls.has-line{grid-template-columns:minmax(0,1fr) auto}
.fishing-card .fishing-controls button{margin:0;min-height:46px;transition:background .15s,box-shadow .15s,transform .12s}
.fishing-card #fishing-action{background:#426c57;border:1px solid #365b48;box-shadow:0 3px 0 #2d4e3d;color:#fff9e7;font-size:16px;padding:8px}
.fishing-card #fishing-action:disabled{opacity:1;background:#dfe7d7;border-color:#d0dac6;box-shadow:0 2px 0 #c9d3bf;color:#63765b}
.fishing-card #fishing-action:enabled:active{transform:translateY(2px);box-shadow:none}
.fishing-card .fishing-stop{padding:6px 9px;font-size:11px;color:#6f7865;background:transparent;border-color:#d7ddca}
.fishing-card[data-phase=bite] #fishing-action:enabled{background:#b66e35;border-color:#9b5b2c;box-shadow:0 3px 0 #854b23;animation:fishing-bite 1s ease-in-out infinite}
.fishing-card[aria-busy=true] #fishing-action{cursor:progress}
@keyframes fishing-bite{50%{box-shadow:0 3px 0 #854b23,0 0 0 4px #eacba2}}
@media(max-height:450px) and (orientation:landscape){
  .fishing-card h3,.fishing-card .fishing-help{display:none}
  #panel-content[data-mode=fishing]{padding:7px 9px}
  .fishing-card{padding:8px;margin-bottom:0;border-radius:10px}
  .fishing-steps{margin-bottom:6px;gap:3px}.fishing-steps span{font-size:9px;padding:4px 1px}
  .fishing-card .fishing-status{min-height:31px;font-size:11px;margin-bottom:3px;line-height:1.35}
  .fishing-meter{margin-bottom:7px;height:24px}
  .fishing-card .fishing-controls button{min-height:38px;padding:6px}
  .fishing-card #fishing-action{font-size:14px}.fishing-card .fishing-stop{font-size:10px}
}
@media(prefers-reduced-motion:reduce){.fishing-card .fishing-controls button{transition:none;animation:none!important}}
@media(max-height:350px) and (orientation:landscape){
  #panel-content[data-mode=fishing]{padding:5px 8px}
  #panel-content .fishing-card{padding:6px;margin-bottom:0}
  .fishing-steps{margin-bottom:4px}.fishing-steps span{padding:3px 1px}
  .fishing-card .fishing-status{min-height:30px}
  .fishing-meter{height:20px;margin-bottom:4px}
}
@media(max-height:450px) and (orientation:landscape){
  .growing-card>p{display:none}
  #panel-content[data-mode=garden]>.card,#panel-content[data-mode=pond]>.card{padding:8px}
  #panel-content[data-mode=garden] .card h3,#panel-content[data-mode=pond] .card h3{font-size:12px}
  .growing-card .big-icon{width:32px;height:32px}
}
@media(max-height:450px) and (orientation:landscape){#panel-content[data-mode=garden],#panel-content[data-mode=pond]{display:flex;flex-direction:column}#panel-content[data-mode=garden]>.intro,#panel-content[data-mode=pond]>.intro{display:none}#panel-content>.slots{order:2;flex-shrink:0}#panel-content>.card{flex-shrink:0}#panel-content>button{order:3;flex-shrink:0}.choices button{min-height:38px}.card{margin-bottom:8px}.card p{margin-bottom:6px}.timer{margin:5px 0}}
