:root{--nav:#102d4e;--blue:#246bfd;--bg:#f4f7fb;--ink:#172438;--mut:#718096;--line:#e1e8f0;--green:#157347;--warn:#8a6100;--red:#b42318;--white:#fff}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login{min-height:100svh;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#0d2744,#173f69)}.loginCard{width:min(420px,100%);background:#fff;border-radius:22px;padding:28px;box-shadow:0 20px 60px #07182a55}.brand{font-size:28px;font-weight:950;letter-spacing:-1px;color:var(--nav)}.brand small{display:block;font-size:9px;letter-spacing:3px;color:#718096;margin-top:2px}.loginCard h1{font-size:25px;margin:28px 0 6px}.mut{color:var(--mut)}label{display:block;font-size:11px;font-weight:800;color:#506075;margin:13px 0 6px}.field,textarea,select{width:100%;border:1px solid #d5dfeb;border-radius:12px;padding:11px 12px;background:#fff;color:var(--ink)}textarea{resize:vertical;line-height:1.5}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:10px 13px;font-weight:800;font-size:12px}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.dark{background:var(--nav);border-color:var(--nav);color:#fff}.btn.ghost{background:transparent}.btn:disabled{opacity:.45;cursor:not-allowed}.msg{margin-top:12px;padding:10px 12px;border-radius:10px;font-size:11px}.msg.bad{background:#fff1ef;color:var(--red)}.msg.warn{background:#fff8e8;color:var(--warn)}.msg.ok{background:#eef9f2;color:var(--green)}.app{min-height:100svh}.top{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:30}.top .brand{font-size:21px}.status{font-size:9px;color:var(--mut);max-width:42vw;text-align:right}.main{max-width:1180px;margin:0 auto;padding:18px 16px 105px}.homeHero{background:linear-gradient(135deg,#102d4e,#1c527f);color:#fff;border-radius:20px;padding:22px;margin-bottom:16px}.homeHero h1{margin:0 0 7px;font-size:26px}.homeHero p{margin:0;color:#d7e3ee;font-size:12px;line-height:1.5}.tiles{display:grid;grid-template-columns:1.3fr .7fr;gap:13px}.tile{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;text-align:left;box-shadow:0 3px 12px #102a4307}.tile .icon{font-size:30px}.tile h2{font-size:18px;margin:14px 0 6px}.tile p{font-size:11px;color:var(--mut);line-height:1.55;margin:0}.tile.primaryTile{border-color:#bfd1ff;background:linear-gradient(180deg,#fff,#f7faff)}.viewHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px}.viewHead h1{font-size:23px;margin:0 0 5px}.viewHead p{margin:0;color:var(--mut);font-size:11px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 10px #102a4306}.formCard{padding:17px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.span2{grid-column:1/-1}.voiceRow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.voiceState{font-size:9px;color:var(--mut);margin-top:6px}.drop{border:1.5px dashed #bdcadd;border-radius:13px;padding:16px;text-align:center;background:#fbfcfe}.drop b{display:block;font-size:12px}.drop small{display:block;color:var(--mut);font-size:9px;margin-top:4px}.sectionLabel{font-size:9px;letter-spacing:1px;font-weight:900;color:#65758a;margin:18px 0 8px}.generate{width:100%;padding:13px;font-size:14px;margin-top:14px}.photos{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:9px}.photo{position:relative;border-radius:10px;overflow:hidden;background:#eef2f6;aspect-ratio:1/1}.photo img{width:100%;height:100%;object-fit:cover}.photoTools{position:absolute;left:4px;right:4px;bottom:4px;display:flex;gap:3px;justify-content:center}.photoTools button{border:0;border-radius:6px;background:#ffffffdd;padding:3px 6px;font-size:10px}.photoNo{position:absolute;top:4px;left:5px;background:#102d4edd;color:#fff;font-size:8px;border-radius:999px;padding:3px 6px}.outputs{display:grid;grid-template-columns:1fr 1.2fr;gap:13px;margin-top:14px}.outCard{padding:16px;min-width:0}.outHead{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.outHead h3{margin:0;font-size:14px}.badge{padding:4px 7px;border-radius:999px;background:#eef3f8;color:#536579;font-size:8px;font-weight:850}.badge.ai{background:#eaf8ef;color:var(--green)}.badge.rules{background:#fff4d8;color:var(--warn)}.outText{white-space:pre-wrap;font-family:inherit;font-size:11px;line-height:1.6;background:#fbfcfe;border:1px solid var(--line);border-radius:11px;padding:12px;margin-top:10px;max-height:420px;overflow:auto}.advanceText{max-height:300px}.outActions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.counter{font-size:9px;color:var(--mut);margin-top:5px}.counter.warn{color:var(--red);font-weight:800}.historyRow{display:grid;grid-template-columns:1fr auto;gap:8px;padding:11px 0;border-bottom:1px solid var(--line)}.historyRow:last-child{border-bottom:0}.historyRow b{font-size:11px}.historyRow small{display:block;color:var(--mut);font-size:9px;margin-top:3px}.empty{padding:22px;text-align:center;color:var(--mut);font-size:11px}.tinsaOutput{white-space:pre-wrap;line-height:1.6;font-size:11px;padding:16px}.bottomNav{position:fixed;bottom:0;left:0;right:0;background:#fffffff4;backdrop-filter:blur(8px);border-top:1px solid var(--line);z-index:40;display:grid;grid-template-columns:repeat(3,1fr);padding:max(7px,env(safe-area-inset-bottom)) 8px 7px}.bottomNav button{border:0;background:transparent;color:#66788a;font-size:9px;font-weight:800;padding:6px}.bottomNav button b{display:block;font-size:18px;margin-bottom:2px}.bottomNav button.active{color:var(--blue)}@media(max-width:760px){.main{padding:14px 12px 110px}.tiles,.outputs,.grid2{grid-template-columns:1fr}.span2{grid-column:auto}.photos{grid-template-columns:repeat(3,1fr)}.voiceRow{grid-template-columns:1fr}.homeHero{padding:19px}.tile{padding:17px}.viewHead h1{font-size:21px}.outText{max-height:none}.top{padding:0 13px}.status{display:none}}@media(max-width:430px){.photos{grid-template-columns:repeat(2,1fr)}}@media print{.noPrint{display:none!important}}