:root{color-scheme:light;--color-primary: #0d9488;--color-primary-hover: #0f766e;--color-bg: #f0fdfa;--color-surface: #ffffff;--color-text: #134e4a;--color-muted: #475569;--color-border: #99f6e4;--color-accent-warn: #d97706;--color-danger: #dc2626;--accent: #0d9488;--shadow-sm: 0 1px 2px rgb(19 78 74 / .06);--shadow-md: 0 4px 16px rgb(19 78 74 / .08);--radius: 12px;--radius-sm: 8px;font-family:Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:hidden}body{margin:0;background:var(--color-bg);color:var(--color-text);line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden}.app-frame{min-height:100dvh;display:flex;flex-direction:column}.app-topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 1rem;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border)}.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.05rem;color:var(--color-text);text-decoration:none}.brand-mark{width:10px;height:10px;border-radius:3px;background:var(--color-primary)}.topnav{display:flex;gap:.35rem}.topnav a{font-size:.85rem;padding:.35rem .65rem;border-radius:999px;text-decoration:none;color:var(--color-muted);transition:background .2s,color .2s}.topnav a:hover{background:#ccfbf1;color:var(--color-text)}.topnav a.active{background:var(--color-primary);color:#fff}.app-main{flex:1}.app-footer{padding:.75rem 1rem 1.25rem;text-align:center;border-top:1px solid var(--color-border);background:var(--color-surface)}.app-shell{width:100%;min-height:60dvh;max-width:40rem;margin:0 auto;padding:1rem 1rem 2.5rem}.page-title{font-size:1.35rem;font-weight:700;margin:.5rem 0}.lede{font-size:.95rem;color:var(--color-muted);margin:0 0 1rem}.section-heading{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);margin:1.25rem 0 .5rem}.back-link{font-size:.85rem;color:var(--color-primary);text-decoration:none}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;margin-bottom:.75rem;box-shadow:var(--shadow-sm)}.card-title{margin:0 0 .5rem;font-size:1rem}.btn{display:block;width:100%;min-height:2.75rem;padding:.8rem 1rem;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-weight:600;font-size:.95rem;cursor:pointer;transition:background .2s,transform .15s}.btn:hover:not(:disabled){background:var(--color-primary-hover)}.btn:active:not(:disabled){transform:scale(.99)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}label{display:block;font-size:.78rem;font-weight:500;color:var(--color-muted);margin:.5rem 0 .25rem}input,select,textarea{width:100%;padding:.65rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#fff;color:var(--color-text);font-size:1rem;font-family:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px}.hint{font-size:.8rem;color:var(--color-muted);margin-top:.5rem}.notice{font-size:.88rem;color:#92400e;background:#fffbeb;border:1px solid #fcd34d;padding:.65rem .75rem;border-radius:var(--radius-sm);margin:.5rem 0}.error-text{color:var(--color-danger);font-size:.88rem}.link-card{display:block;text-decoration:none;color:inherit;transition:box-shadow .2s}.link-card:hover{box-shadow:var(--shadow-md)}.chip-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.chip{border:1px solid var(--color-border);border-radius:999px;padding:.4rem .7rem;background:#fff;color:var(--color-text);font-size:.85rem;cursor:pointer;transition:border-color .2s,background .2s}.chip-on{border-color:var(--color-primary);background:#ccfbf1}.camera-wrap{position:relative;overflow:hidden;padding:0;border:none;box-shadow:var(--shadow-md)}.camera-video{width:100%;max-width:100%;max-height:min(55vh,480px);display:block;border-radius:var(--radius);min-height:200px;object-fit:contain;background:#0f172a}.camera-wait{position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);background:#0f172abf;color:#fff;padding:.35rem .65rem;border-radius:999px;font-size:.8rem}.watermark-overlay{position:absolute;z-index:2;pointer-events:none;padding:12px;font-weight:700;color:#f22;text-shadow:0 0 3px #000}.watermark-overlay.wm-top_left{top:0;left:0}.watermark-overlay.wm-top_right{top:0;right:0}.watermark-overlay.wm-center{top:50%;left:50%;transform:translate(-50%,-50%)}.watermark-overlay.wm-bottom_left{bottom:0;left:0}.watermark-overlay.wm-bottom_right{bottom:0;right:0}.btn-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.btn-row .btn{flex:1;min-width:7rem}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem}.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.photo-tile{display:flex;flex-direction:column;gap:.35rem}.photo-tile .btn{padding:.4rem .5rem;font-size:.8rem}.tree-form{width:100%;max-width:100%;overflow-x:hidden;padding-bottom:.5rem}.sheet-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.sheet-head .page-title{margin:0;font-size:1.25rem}.sheet-block{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.7rem .8rem .8rem;margin-bottom:.5rem;box-shadow:var(--shadow-sm)}.sheet-block>h2{margin:0 0 .45rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.sheet-block>label:first-child{margin-top:0}.sheet-ai,.sheet-block .photo-grid{margin-top:.55rem}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.5rem}.form-pair .sheet-block{margin-bottom:0}.sheet-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.15rem 0 .4rem}.sheet-link,.sheet-delete{background:none;border:0;padding:0;width:auto;font:inherit;font-size:.85rem;color:var(--color-primary);text-decoration:none;cursor:pointer}.sheet-delete{color:var(--color-danger)}.tree-form-bottom-spacer{height:6.5rem}.tree-form-seq-row{display:grid;grid-template-columns:minmax(3.5rem,auto) 1fr auto auto;gap:.4rem .5rem;align-items:center;margin-bottom:.5rem}.tree-form-seq-row label{margin:0;font-size:.8rem}.seq-input{min-width:0;padding:.5rem .65rem}.photo-no-label{font-size:.75rem;color:var(--color-muted)}.photo-no-badge{font-weight:700;min-width:1.5rem;text-align:center}.save-banner{position:fixed;left:0;right:0;bottom:7.2rem;z-index:60;max-width:72rem;margin:0 auto;display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;background:#134e4a;color:#fff;font-weight:600}.save-spinner{width:1rem;height:1rem;border:2px solid rgb(255 255 255 / .35);border-top-color:#fff;border-radius:50%;animation:save-spin .8s linear infinite}@keyframes save-spin{to{transform:rotate(360deg)}}.tree-form-bottom{position:fixed;left:0;right:0;bottom:0;z-index:50;max-width:32rem;margin:0 auto;background:#fffffff7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--color-border);padding:.65rem 1rem max(.75rem,env(safe-area-inset-bottom));box-shadow:0 -4px 20px #134e4a14}.field-photo-list{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.field-photo-item img{width:100%;max-width:100%;max-height:min(42vh,360px);height:auto;object-fit:contain;display:block;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#0f172a}.field-photo-actions{display:flex;flex-wrap:wrap;gap:.5rem}.field-photo-actions .btn{flex:1;min-width:6.5rem;width:auto;padding:.55rem .65rem;font-size:.85rem}.section-title{font-size:1.15rem;font-weight:700;margin:1.25rem 0 .35rem}.record-row .record-main{min-width:0}.record-meta{font-size:.8rem;word-break:break-word}.edit-banner{border-color:var(--color-primary)!important}.species-ac-latin{display:block;font-weight:600;font-size:.95rem}.species-ac-ka{display:block;font-size:.82rem;color:var(--color-muted)}.meter{height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-bottom:.75rem}.meter-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),#2dd4bf);transition:width .3s}.metric-row{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;font-weight:500}.pill-ok,.pill-warn{font-size:.75rem;padding:.2rem .5rem;border-radius:999px}.pill-ok{background:#d1fae5;color:#065f46}.pill-warn{background:#ffedd5;color:#9a3412}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.stack-form{margin-top:.5rem}.record-row-safe{display:grid;grid-template-columns:4.5rem 1fr auto;gap:.65rem;align-items:start}.record-actions{display:flex;flex-direction:column;gap:.35rem;min-width:5.5rem}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.record-thumb{width:4.5rem;height:4.5rem;object-fit:cover;border-radius:var(--radius-sm)}.record-edit-btn{width:auto;padding:.55rem .75rem;font-size:.85rem}.species-ac-list{list-style:none;margin:.35rem 0 0;padding:0;max-height:14rem;overflow:auto;border-radius:var(--radius-sm);background:#fff;border:1px solid var(--color-border);box-shadow:var(--shadow-md)}.species-ac-list button{width:100%;text-align:left;padding:.5rem .65rem;border:none;background:transparent;cursor:pointer}.recognition-page{width:100%;max-width:100%}.rec-back{display:inline-block;margin-bottom:.35rem;border:none;background:none;padding:0;cursor:pointer;font:inherit}.rec-steps{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:0 0 1rem;padding:0}.rec-steps li{flex:1;min-width:5.5rem;text-align:center;font-size:.72rem;font-weight:600;padding:.4rem .35rem;border-radius:999px;border:1px solid var(--color-border);color:var(--color-muted);background:#fff}.rec-step-on{background:#ccfbf1;border-color:var(--color-primary);color:var(--color-text)}.rec-section{margin-bottom:.85rem}.rec-hint{margin-top:-.25rem;margin-bottom:.75rem}.rec-organ-chips{margin-bottom:.75rem;max-height:9rem;overflow-y:auto}.rec-camera-block{position:relative;margin-top:.25rem}.upload-banner{margin:.75rem auto 0;max-width:960px;padding:.65rem .9rem;border-radius:var(--radius-sm);background:#ecfdf5;color:#115e59}.upload-fail{color:#9f1239;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.rec-live-hidden .rec-video{max-height:1px}.rec-review-block{margin-top:.5rem}.rec-video,.rec-preview-main{width:100%;max-width:100%;max-height:min(48vh,400px);display:block;border-radius:var(--radius-sm);object-fit:contain;background:#0f172a}.rec-shots-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.rec-shot-list{list-style:none;margin:.5rem 0 .85rem;padding:0;display:flex;flex-direction:column;gap:.65rem}.rec-shot-item{display:grid;grid-template-columns:5.5rem 1fr;gap:.65rem;align-items:start;padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#f8fffe}.rec-shot-thumb{width:5.5rem;height:5.5rem;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.rec-shot-meta{display:flex;flex-direction:column;gap:.35rem;min-width:0}.rec-shot-organ-label{margin:0;font-size:.72rem}.rec-shot-select{padding:.45rem .55rem;font-size:.9rem}.rec-shot-del{width:auto;padding:.45rem .65rem;font-size:.82rem;margin-top:.15rem}.rec-results{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.rec-result-btn{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:.65rem;align-items:center;text-align:left;padding:.65rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s;font:inherit;color:inherit}.rec-result-btn:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.rec-result-rank{width:1.75rem;height:1.75rem;border-radius:50%;background:var(--color-primary);color:#fff;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center}.rec-result-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.rec-result-name{font-weight:700;font-size:.95rem;word-break:break-word}.rec-result-latin{font-size:.82rem;color:var(--color-muted);font-style:italic}.rec-result-ka{font-size:.8rem;color:var(--color-text)}.rec-result-score{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;min-width:3.5rem}.rec-score-bar{width:3.25rem;height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.rec-score-fill{display:block;height:100%;background:linear-gradient(90deg,var(--color-primary),#2dd4bf);border-radius:999px}@media print{.app-topbar,.app-footer,.no-print{display:none!important}}@media (min-width: 768px){.app-shell{max-width:52rem;padding:1.25rem 1.5rem 3rem}.app-topbar,.app-footer{padding-inline:max(1.25rem,calc((100vw - 52rem)/2))}.page-title{font-size:1.6rem}.tree-form-bottom{max-width:52rem}.responsive-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;align-items:start}.responsive-grid>.card{margin-bottom:0}.record-board:has(.hint:only-child){display:block}}@media (min-width: 1100px){.app-shell{max-width:72rem}.app-topbar,.app-footer{padding-inline:max(1.5rem,calc((100vw - 72rem)/2))}.tree-form-bottom{max-width:72rem}.camera-page{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(20rem,.75fr);gap:.75rem 1rem;align-items:start}.camera-page>.back-link,.camera-page>.notice,.camera-page>.error-text{grid-column:1 / -1}.camera-page>.camera-wrap{grid-row:2 / span 3;margin-bottom:0}.camera-video{max-height:min(72vh,640px);min-height:360px}.tree-form{display:grid;grid-template-columns:1fr 1fr;column-gap:.75rem;align-items:start}.tree-form>.sheet-head,.tree-form>.sheet-photos,.tree-form>.form-pair,.tree-form>.sheet-actions,.tree-form>.tree-form-bottom-spacer{grid-column:1 / -1}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
