.wrap{max-width:980px;margin:0 auto;padding:28px 0}
    .back{color:#6b7280;text-decoration:none;font-size:14px}
    h1{margin:20px 0 8px;font-size:30px}
    .sub{color:#6b7280;margin-bottom:18px;line-height:1.8}
    .card{
      background:#fff;
      border-radius:18px;
      padding:22px;
      box-shadow:0 8px 24px rgba(0,0,0,.08);
    }
    label{display:block;margin:0 0 8px;color:#6b7280;font-size:14px}
    input,select{
      width:100%;
      height:46px;
      border:1px solid #d9dce6;
      border-radius:12px;
      padding:0 12px;
      font-size:15px;
      background:#fff;
      color:inherit;
    }
    input[type="file"]{height:auto;padding:12px;cursor:pointer}
    .grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
    @media(max-width:760px){.grid{grid-template-columns:1fr}}
    .field{margin-bottom:14px}
    .btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
    button,a.download{
      border:0;
      border-radius:12px;
      padding:12px 16px;
      cursor:pointer;
      font-size:14px;
      text-decoration:none;
      display:inline-flex;
      align-items:center;
      justify-content:center;
    }
    .primary{background:#3b5bff;color:#fff}
    .danger{background:#ffecec;color:#7f1d1d}
    .download{background:#16a34a;color:#fff}
    .download.disabled{pointer-events:none;opacity:.45;background:#9ca3af}
    .stage{
      margin-top:18px;
      min-height:360px;
      border:1px solid #e5e7eb;
      border-radius:16px;
      padding:18px;
      background-color:#fafafa;
      background-image:
        linear-gradient(45deg,rgba(148,163,184,.26) 25%,transparent 25%),
        linear-gradient(-45deg,rgba(148,163,184,.26) 25%,transparent 25%),
        linear-gradient(45deg,transparent 75%,rgba(148,163,184,.26) 75%),
        linear-gradient(-45deg,transparent 75%,rgba(148,163,184,.26) 75%);
      background-size:24px 24px;
      background-position:0 0,0 12px,12px -12px,-12px 0;
      display:flex;
      align-items:center;
      justify-content:center;
      overflow:auto;
    }
    .placeholder{
      color:#94a3b8;
      text-align:center;
      line-height:1.8;
      font-weight:600;
    }
    .image-box{
      position:relative;
      display:none;
      user-select:none;
      touch-action:none;
      box-shadow:0 8px 24px rgba(15,23,42,.18);
      border-radius:12px;
      overflow:hidden;
      background:#fff;
    }
    .image-box img{
      display:block;
      width:100%;
      height:100%;
      object-fit:contain;
      pointer-events:none;
    }
    .shade{
      position:absolute;
      inset:0;
      background:rgba(0,0,0,.48);
      pointer-events:none;
    }
    .crop-box{
      position:absolute;
      border:2px solid #fff;
      box-shadow:0 0 0 9999px rgba(0,0,0,.48);
      cursor:move;
      touch-action:none;
      background:transparent;
    }
    .crop-box::before,.crop-box::after{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background:
        linear-gradient(to right, transparent 33.333%, rgba(255,255,255,.7) 33.333%, rgba(255,255,255,.7) calc(33.333% + 1px), transparent calc(33.333% + 1px), transparent 66.666%, rgba(255,255,255,.7) 66.666%, rgba(255,255,255,.7) calc(66.666% + 1px), transparent calc(66.666% + 1px)),
        linear-gradient(to bottom, transparent 33.333%, rgba(255,255,255,.7) 33.333%, rgba(255,255,255,.7) calc(33.333% + 1px), transparent calc(33.333% + 1px), transparent 66.666%, rgba(255,255,255,.7) 66.666%, rgba(255,255,255,.7) calc(66.666% + 1px), transparent calc(66.666% + 1px));
    }
    .handle{
      position:absolute;
      right:-8px;
      bottom:-8px;
      width:18px;
      height:18px;
      border-radius:50%;
      background:#3b5bff;
      border:3px solid #fff;
      cursor:nwse-resize;
      box-shadow:0 2px 8px rgba(0,0,0,.25);
    }
    .info{
      margin-top:12px;
      color:#6b7280;
      font-size:13px;
      line-height:1.8;
      word-break:break-all;
    }
    .note{
      margin-top:16px;
      padding:14px 16px;
      border:1px solid #e5e7eb;
      border-radius:14px;
      color:#6b7280;
      font-size:13px;
      line-height:1.8;
      background:#fafafa;
    }
    footer{
      margin-top:34px;
      color:#9ca3af;
      font-size:13px;
      line-height:1.8;
      text-align:center;
    }
    footer a{color:inherit;text-decoration:none}
