
*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#F7F6F3;--sur:#FFF;--s2:#F0EDE8;--s3:#E8E4DC;--tx:#1A1916;--t2:#6B6860;--t3:#9B9890;--acc:#1A3A2A;--al:#E8F0EB;--am:#2D6B47;--dan:#C0392B;--dl:#FDECEA;--bor:#E0DDD6;--b2:#C8C4BC;--r:8px;--rl:12px;--rxl:16px}
body{font-family:"DM Sans",sans-serif;background:var(--bg);color:var(--tx);font-size:14px;line-height:1.5;min-height:100vh}
.wrap{max-width:900px;margin:0 auto;padding:16px}
.hdr{background:var(--acc);padding:14px 20px;border-radius:var(--rl);margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.ht{font-size:18px;font-weight:600;color:#fff}.hs{font-size:12px;opacity:.7;color:#fff;margin-top:2px}
.ub{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:20px;padding:4px 12px;font-size:12px;font-weight:500;color:#fff;cursor:pointer;white-space:nowrap}
.card{background:var(--sur);border:1px solid var(--bor);border-radius:var(--rl);padding:20px;margin-bottom:16px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
label{display:block;font-size:12px;font-weight:500;color:var(--t2);margin-bottom:5px}
input,textarea{width:100%;background:var(--bg);border:1px solid var(--bor);border-radius:var(--r);padding:9px 12px;font-family:inherit;font-size:14px;color:var(--tx);outline:none;transition:border .15s}
input:focus,textarea:focus{border-color:var(--am);box-shadow:0 0 0 3px rgba(45,107,71,.1)}
textarea{resize:vertical;min-height:80px}
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--r);border:1px solid var(--bor);background:var(--sur);color:var(--tx);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}
.btn:hover{background:var(--s2)}.bp{background:var(--acc);color:#fff;border-color:var(--acc)}.bp:hover{background:var(--am)}
.bd{background:var(--dl);color:var(--dan);border-color:#FBCAC5}.bd:hover{background:#FBCAC5}
.bsm{padding:6px 11px;font-size:12px}.bxs{padding:4px 9px;font-size:11px}
.tabs{display:flex;gap:5px;margin-bottom:20px;background:var(--sur);border:1px solid var(--bor);border-radius:var(--rl);padding:5px}
.tab{flex:1;text-align:center;padding:9px 8px;border-radius:var(--r);font-size:13px;font-weight:500;color:var(--t2);cursor:pointer;transition:all .15s}
.tab.on{background:var(--acc);color:#fff}.tab:not(.on):hover{background:var(--s2)}
.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600}
.bMat{background:#FDE8E8;color:#A31F1F}.bMin{background:#FEF3E2;color:#8B5E0A}.bCos{background:#E8F2FA;color:#1A4A6A}.bMaj{background:#EDE8FE;color:#4A2D9A}
.sbar{background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);padding:8px 14px;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--t2);margin-bottom:16px}
.dot{width:8px;height:8px;border-radius:50%;background:#4CAF50;flex-shrink:0;animation:pulse 2s infinite}.dot.red{background:var(--dan)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.ssel{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin-bottom:20px}
.sbtn{background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);padding:10px 6px;text-align:center;cursor:pointer;transition:all .15s;font-size:12px;font-weight:500;color:var(--t2)}
.sbtn:hover{border-color:var(--am);background:var(--al);color:var(--acc)}.sbtn.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.sico{font-size:18px;display:block;margin-bottom:3px}
.scw{margin-bottom:8px}
.sch{display:flex;align-items:center;justify-content:space-between;background:var(--s2);border:1px solid var(--bor);border-radius:var(--r);padding:10px 14px;cursor:pointer;user-select:none;transition:background .15s}
.sch:hover{background:var(--s3)}.scl{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--acc)}
.scr{font-size:11px;color:var(--t2);display:flex;align-items:center;gap:8px}
.chev{font-size:11px;color:var(--t3);transition:transform .2s;display:inline-block}.chev.open{transform:rotate(90deg)}
.scb{display:none;padding-top:4px}.scb.open{display:block}
.cli{background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);padding:11px 14px;cursor:pointer;transition:all .15s;margin-bottom:5px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.cli:hover{border-color:var(--am);background:var(--al)}.cli.hadd{background:#F0F8F3;border-color:#2D6B47}
.cll{font-size:13px;font-weight:500;flex:1}.clc{font-size:11px;font-weight:600;color:var(--am);background:var(--al);border-radius:20px;padding:2px 8px;flex-shrink:0}
.obi{background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);padding:12px 14px;cursor:pointer;transition:all .15s;margin-bottom:6px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.obi:hover{border-color:var(--am);background:var(--al)}.obi.added{background:#F0F8F3;border-color:#2D6B47}
.obt{font-size:13px;flex:1;line-height:1.4}.ob-cnt{font-size:11px;font-weight:600;color:var(--am);background:var(--al);border-radius:20px;padding:2px 8px;white-space:nowrap;flex-shrink:0}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}
.pslot{position:relative;aspect-ratio:1;border-radius:var(--r);overflow:hidden;border:1px solid var(--bor)}
.pslot img{width:100%;height:100%;object-fit:cover;display:block}
.pdel{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.65);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff}
.padd{aspect-ratio:1;border-radius:var(--r);border:2px dashed var(--b2);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;background:var(--bg);transition:all .15s;color:var(--t3);gap:3px;font-size:11px;font-weight:500}
.padd:hover{border-color:var(--am);background:var(--al);color:var(--am)}.padd-icon{font-size:26px;line-height:1}
.dbt{padding:6px 14px;border-radius:20px;border:1.5px solid var(--bor);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;background:var(--sur)}
.dbt:hover{background:var(--s2)}.dbt.sMat{background:#FDE8E8;color:#A31F1F;border-color:#F5BABA}.dbt.sMin{background:#FEF3E2;color:#8B5E0A;border-color:#FAD99A}.dbt.sCos{background:#E8F2FA;color:#1A4A6A;border-color:#B8D9F2}.dbt.sMaj{background:#EDE8FE;color:#4A2D9A;border-color:#C8B8F8}
.mw{display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.5);overflow-y:auto;padding:20px}.mw.open{display:flex;align-items:flex-start;justify-content:center}
.modal{background:var(--sur);border-radius:var(--rxl);padding:24px;width:100%;max-width:600px;margin:auto;position:relative}
.mcl{position:absolute;top:14px;right:14px;width:28px;height:28px;border-radius:50%;border:1px solid var(--bor);background:var(--sur);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;color:var(--t2)}
.mt{font-size:15px;font-weight:600;margin-bottom:4px;padding-right:28px;line-height:1.4}.ms{font-size:12px;color:var(--t2);margin-bottom:16px}
.dr{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.spin{width:16px;height:16px;border:2px solid var(--al);border-top-color:var(--am);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
.aigen{display:flex;align-items:center;gap:10px;padding:12px;background:var(--al);border-radius:var(--r);font-size:13px;color:var(--am)}
.fg{margin-bottom:14px;min-width:0}
.rsum{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.stc{background:var(--s2);border-radius:var(--r);padding:12px;text-align:center}.sn{font-size:22px;font-weight:600}.sl{font-size:11px;color:var(--t2);margin-top:2px}
.sg{margin-bottom:16px}.sgt{font-size:14px;font-weight:600;color:var(--acc);border-bottom:2px solid var(--al);padding-bottom:7px;margin-bottom:10px}
.ri{background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);padding:14px;margin-bottom:10px}
.uopt{padding:12px;border:1.5px solid var(--bor);border-radius:var(--rl);text-align:center;cursor:pointer;transition:all .15s}
.uopt:hover{border-color:var(--am);background:var(--al)}.uopt.on{border-color:var(--acc);background:var(--al)}
.back{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--t2);cursor:pointer;margin-bottom:12px}.back:hover{color:var(--acc)}
.ctag{display:inline-flex;padding:1px 6px;border-radius:20px;font-size:10px;font-weight:600;background:#FEF3E2;color:#8B5E0A;border:1px solid #FAD99A;margin-left:5px;vertical-align:middle}
.add-obs-btn{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r);border:1.5px dashed var(--b2);background:transparent;color:var(--t2);font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;width:100%;margin-bottom:5px}
.add-obs-btn:hover{border-color:var(--am);background:var(--al);color:var(--am)}
.add-sec-btn{background:var(--sur);border:1.5px dashed var(--b2);border-radius:var(--r);padding:10px 6px;text-align:center;cursor:pointer;transition:all .15s;font-size:12px;font-weight:500;color:var(--t2)}
.add-sec-btn:hover{border-color:var(--am);background:var(--al);color:var(--am)}
.db-flt{padding:4px 10px;border-radius:20px;border:1px solid var(--bor);background:var(--sur);font-size:12px;font-weight:500;cursor:pointer;color:var(--t2);transition:all .15s}
.db-flt:hover{border-color:var(--am);color:var(--am);background:var(--al)}.db-flt.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.ic{background:var(--sur);border:1px solid var(--bor);border-radius:var(--rl);padding:16px;margin-bottom:10px;cursor:pointer;transition:all .15s;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ic:hover{border-color:var(--am);background:var(--al)}.ia{font-size:14px;font-weight:600;margin-bottom:3px}
.im{font-size:12px;color:var(--t2);display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.ib{font-size:11px;font-weight:600;background:var(--al);color:var(--am);border-radius:20px;padding:2px 8px;white-space:nowrap}
.iavatar{width:48px;height:48px;border-radius:50%;background:var(--s2);border:2px solid var(--bor);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;overflow:hidden;flex-shrink:0;cursor:pointer}
.iavatar img{width:100%;height:100%;object-fit:cover}
.report-photo{cursor:zoom-in;transition:transform .15s}.report-photo:hover{transform:scale(1.06)}
.ann-tool{width:36px;height:36px;border-radius:6px;border:2px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.ann-tool.on{border-color:#2ECC71;background:rgba(46,204,113,.25)}
.ann-col{width:28px;height:28px;border-radius:50%;border:3px solid transparent;cursor:pointer}
.ann-col.on{border-color:#fff}

.iavatar img{width:100%;height:100%;object-fit:cover}
.report-photo{cursor:zoom-in;transition:transform .15s}.report-photo:hover{transform:scale(1.06)}
.ann-tool{width:36px;height:36px;border-radius:6px;border:2px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.ann-tool.on{border-color:#2ECC71;background:rgba(46,204,113,.25)}
.ann-col{width:28px;height:28px;border-radius:50%;border:3px solid transparent;cursor:pointer}
.ann-col.on{border-color:#fff}

@media (max-width:600px){
  .wrap{padding:10px}
  .hdr{padding:10px 12px;gap:8px}
  .ht{font-size:15px}.hs{font-size:11px}
  .g2{grid-template-columns:1fr}
  .rsum{grid-template-columns:1fr 1fr}
  .sn{font-size:18px}
  .tab{font-size:11px;padding:7px 4px}
  .tabs{padding:4px;gap:4px}
  .mw{padding:8px}
  .modal{padding:14px 14px 16px}
  .sbtn{padding:7px 4px;font-size:11px}
  .sico{font-size:16px}
  .btn{padding:8px 12px;font-size:12px}
  .bsm{padding:6px 10px;font-size:11px}
  .card{padding:14px}
  .ic{padding:10px 12px}
  .ri{padding:10px 12px}
  #ann-size{width:80px}
  .pgrid{grid-template-columns:repeat(3,1fr);gap:6px}
  .sch{padding:8px 12px}
  .cli{padding:9px 10px}
  .obi{padding:10px 12px}
  .sbar{padding:7px 12px}
}

@media (max-width:380px){
  .tab{font-size:10px;padding:6px 3px}
  .ht{font-size:14px}
  .rsum{grid-template-columns:1fr 1fr}
  .stc{padding:8px}
  .sn{font-size:16px}
}
